2012-01-30 10 views
0

テーブルがあります:name, date, url, nourlには"facebook","twitter","other"が含まれています。グループフィールドへのSQLコマンドと新しい列の作成

どのように私は新しいテーブルを生成することができます:date, facebook, twitter, total, unique name、日付でグループ化し、facebookフィールドはurl="facebook"noの合計、およびtwitterと同じであるように、ということ。 totalフィールドは、すべてnoの合計です。 unique nameは別のname番をカウントしますか?

答えて

4

これにはSUM/CASEを使用できます。

SELECT Date, 
     SUM(case when url = 'facebook' then no else 0 end) as facebook, 
     SUM(case when url = 'twitter' then no else 0 end) as twitter, 
     SUM(no) total, 
     COUNT(DISTINCT NAME) as `unique name` 
FROM 
     table 
GROUP BY 
     date 
+0

'facebook'、' twitter'、 'total'は、countではなく' no'の合計です。なぜGROUP BY 'name'ですか? – DrXCheng

+0

@xuc私は質問を速く読む。私は私の答えを更新しました –

+0

別名を数えるには? – DrXCheng

関連する問題