2016-05-17 51 views
2

我有一個日期時間列'ts'(使用Amazon Redshift)。我怎樣才能將數據分組30天。例如,如果我有這樣的SQL組的天數

select count(*) from table where ts > '2016-01-19' and ts < '2016-03-22' 

查詢哪有我這個組如下組沒有顯式指定這些日期

2016-01-19 to 2016-02-18 
2016-02-19 to 2016-03-18 

我從2016年3月19日被忽略的數據起擔任有一個月沒有多少天?

有什麼想法?

回答

0

像這樣的事情

SELECT CASE 
     WHEN ts > '2016-01-19' 
       AND ts < '2016-02-18' THEN '2016-01-19 to 2016-02-18' 
     WHEN ts > '2016-02-19' 
       AND ts < '2016-03-18' THEN '2016-02-19 to 2016-03-18' 
     END, 
     Count(*) 
FROM table 
WHERE ts > '2016-01-19' 
     AND ts < '2016-03-22' 
GROUP BY CASE 
      WHEN ts > '2016-01-19' 
       AND ts < '2016-02-18' THEN '2016-01-19 to 2016-02-18' 
      WHEN ts > '2016-02-19' 
       AND ts < '2016-03-18' THEN '2016-02-19 to 2016-03-18' 
      END