2017-11-27 10 views
0

私は電子メールのログを持つテーブルを持っており、電子メールの頻度を確認する必要があります。グループ化セットを使用すると、毎時、毎日、毎週、毎月、毎年電子メールカウントを取得できます。 誰かが私に例を送ることはできますか?グループ化セットを使用して電子メールの頻度を取得する

ありがとうございました!

複数のフィールド、カッコ内だけグループ列によってグループ化するに

答えて

0
SELECT DATEPART(yyyy,create_time) [year] 
, DATEPART(mm,create_time) [month] 
, DATEPART(WEEK,create_time) [week] 
, DATEPART(dd,create_time) [day] 
, DATEPART(hour,create_time) [hour] 
, COUNT(*) AS c 
FROM your_table 
GROUP BY GROUPING SETS (DATEPART(yyyy,create_time) 
    ,DATEPART(mm,create_time) 
    ,DATEPART(WEEK,create_time) 
    ,DATEPART(dd,create_time) 
    ,DATEPART(hour,create_time)) 
ORDER BY [year], [month], [week], [day], [hour] 

: 、(DATEPART(YYYY、CREATE_TIME)、DATEPART(ミリメートル、CREATE_TIME))

ここでは年/月のグループ化を含むサンプル出力は、です:

year month week day  hour c 
NULL NULL NULL NULL 0  12 
NULL NULL NULL NULL 1  1 
NULL NULL NULL 1  NULL 219 
NULL NULL NULL 2  NULL 467 
NULL NULL 1  NULL NULL 124 
NULL NULL 2  NULL NULL 216 
NULL 1  NULL NULL NULL 1899 
NULL 2  NULL NULL NULL 1419 
2015 NULL NULL NULL NULL 3750 
2016 NULL NULL NULL NULL 7446 
2015 8  NULL NULL NULL 391 
2015 9  NULL NULL NULL 891 
0

ありがとうございました! グループ化セットにID列を追加しましたが、Hourly/weekly/daily/monthlyが生成されていない場合は表示されません。

SELECT ID, DATEPART(yyyy,create_time) [year] 
, DATEPART(mm,create_time) [month] 
, DATEPART(WEEK,create_time) [week] 
, DATEPART(dd,create_time) [day] 
, DATEPART(hour,create_time) [hour] 
, COUNT(*) AS c 
FROM your_table 
GROUP BY GROUPING SETS(
    (DATEPART(yyyy,create_time),ID) 
    ,(DATEPART(mm,create_time),ID) 
    ,(DATEPART(WEEK,create_time),ID) 
    ,(DATEPART(dd,create_time),ID) 
    ,(DATEPART(hour,create_time) ,ID)) 
ORDER BY [year], [month], [week], [day], [hour],ID 

結果

Month Week Daily Hour C 
NULL NULL NULL 0 12 
NULL NULL NULL 0 471 
NULL NULL NULL 0 176 
NULL NULL NULL 0 145 
NULL NULL NULL 0 633 
NULL NULL NULL 0 13 
NULL NULL NULL 0 24 
NULL NULL NULL 0 2 
NULL NULL NULL 0 324 
NULL NULL NULL 0 555 
+0

IDは何を表しているん - 行ごとに固有のIDということですか(EメールタイプIDか何かのような)グループ化変数ということでしょうか?グループ化変数の場合、ID /時間、ID /日、ID /月などでグループ分けします。 –

+0

はい、グループ化変数です(上記のメールのtypeIDなど)。ご協力ありがとうございました! – user9017400

関連する問題