2016-05-13 10 views
0

次のクエリでは、各サポートチケットのyearmonth_numが表示されます。ピボットと各セルの行数を取得しますか?

SELECT STRFTIME_UTC_USEC(created_at, '%Y') AS year, 
    STRFTIME_UTC_USEC(created_at, '%m') AS month_num 
FROM zendesk.zendesk 

私はこのように、年の値を旋回し、各セル内のすべてのソース行のCOUNT(*)を表示する:

2014 2015 2016 
01  5  ...  ... 
02  8 
03 12 
04 22 
05 30 
06 15 
07 10 
08  9 
09 ... 
10 
11 
12 

はどうすればこれを行うことができますか?

答えて

1

あなたは条件付き集計使用することができます。

SELECT STRFTIME_UTC_USEC(created_at, '%m') AS month_num, 
     SUM(CASE WHEN STRFTIME_UTC_USEC(created_at, '%Y') = '2014' then 1 else 0 end) as cnt_2014, 
     SUM(CASE WHEN STRFTIME_UTC_USEC(created_at, '%Y') = '2015' then 1 else 0 end) as cnt_2015, 
     SUM(CASE WHEN STRFTIME_UTC_USEC(created_at, '%Y') = '2016' then 1 else 0 end) as cnt_2016 
FROM zendesk.zendesk 
GROUP BY month_num; 
1
SELECT 
    month_num, 
    MIN(CASE WHEN [year] = '2014' THEN cnt END) AS year_2014, 
    MIN(CASE WHEN [year] = '2015' THEN cnt END) AS year_2015, 
    MIN(CASE WHEN [year] = '2016' THEN cnt END) AS year_2016 
FROM (
    SELECT 
    STRFTIME_UTC_USEC(created_at, '%Y') AS [year], 
    STRFTIME_UTC_USEC(created_at, '%m') AS month_num, 
    COUNT(*) AS cnt 
    FROM zendesk.zendesk 
    GROUP BY 1,2 
) 
GROUP BY 1 
関連する問題