Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql Vertica按月份汇总数据_Sql_Vertica - Fatal编程技术网

Sql Vertica按月份汇总数据

Sql Vertica按月份汇总数据,sql,vertica,Sql,Vertica,我有一张像这样的Vertica桌子: date number '2016-01-01' 47 '2016-01-02' 32 '2016-04-13' 54 我想这样总结一下: Jan Feb Mar Apr ... 150 102 30 0 其中第二行是该月所有数字的总和 我该怎么做 您需要在每一列上创建一个sum,并使用case语句仅对正确的值求和 SELECT SUM(CASE WHEN MONTH("DATE") = 1 THEN "NUMBER" END) Jan,

我有一张像这样的Vertica桌子:

date number
'2016-01-01' 47
'2016-01-02' 32
'2016-04-13' 54
我想这样总结一下:

Jan Feb Mar Apr ...
150 102 30 0
其中第二行是该月所有数字的总和


我该怎么做

您需要在每一列上创建一个sum,并使用case语句仅对正确的值求和

SELECT SUM(CASE WHEN MONTH("DATE") = 1 THEN "NUMBER" END) Jan,
       SUM(CASE WHEN MONTH("DATE") = 2 THEN "NUMBER" END) Feb,
       SUM(CASE WHEN MONTH("DATE") = 3 THEN "NUMBER" END) Mar,
       SUM(CASE WHEN MONTH("DATE") = 4 THEN "NUMBER" END) Apr,
       SUM(CASE WHEN MONTH("DATE") = 5 THEN "NUMBER" END) May,
       SUM(CASE WHEN MONTH("DATE") = 6 THEN "NUMBER" END) Jun,
       SUM(CASE WHEN MONTH("DATE") = 7 THEN "NUMBER" END) Jul,
       SUM(CASE WHEN MONTH("DATE") = 8 THEN "NUMBER" END) Aug,
       SUM(CASE WHEN MONTH("DATE") = 9 THEN "NUMBER" END) Sep,
       SUM(CASE WHEN MONTH("DATE") = 10 THEN "NUMBER" END) Oct,
       SUM(CASE WHEN MONTH("DATE") = 11 THEN "NUMBER" END) Nov,
       SUM(CASE WHEN MONTH("DATE") = 12 THEN "NUMBER" END) Dec
FROM mytable

您还可以每年添加另一个字段来执行此操作,然后对其进行分组/订购(如果您希望这样做的话)<代码>年份(“日期”)

生成数字1-12,并为每个月添加左连接,求和数字,按从日期中提取的月份分组!我需要什么!