2017-03-07 15 views
0

My tableSUBクエリのグループ別の日付とマネージャー

私はマネージャーと日付のアクションを持つテーブルを持っています。アクションは"0" or "1"です。 日付でグループ化し、"0" and "1"アクションを日付とマネージャーでグループ化するとします。 ここに私のコードです。

SELECT COUNT(*) , 
    manager_id, 
    action, 
    CAST(`created_at` AS DATE) AS DATE 
FROM `prerequesttours_history` 
GROUP BY CAST(`created_at` AS DATE), 
    anager_id, 
    action 

私はこのようになりたい:

| count where action = 1 | count where action = 0 | manager_id | date

Result of query

答えて

0

actionはこの2つの値をとり、あなたが行うことができる場合:

SELECT manager_id, date(`created_at`) AS DATE, 
     SUM(action) as count_1, SUM(1 - action) as cnt_0 
FROM `prerequesttours_history` 
GROUP BY manager_id, date(created_at); 

あなたが比較についてより明確になりたい場合は、次の

SELECT manager_id, date(`created_at`) AS DATE, 
     SUM(action = 1) as count_1, SUM(action = 1) as cnt_0 
FROM `prerequesttours_history` 
GROUP BY manager_id, date(created_at); 

注:cast()への使い方日付に変換しても問題ありません。しかし、MySQLはより簡単な関数date()を提供しています。

+0

これは私が実際に欲しいものです。どうもありがとう。 –

0

サブクエリとしてそれを選択してみてください。

SELECT SUM([Count]), manager_id, action, [Date] 
FROM 
(
    SELECT COUNT(*) 'Count' , manager_id, action, CAST( `created_at` AS DATE) 'Date' 
) main 
GROUP BY manager_id, action, [Date] 
関連する問題