如何将日期数据“转置”为SQL中的列?

时间:2019-10-15 11:03:40

标签: sql pivot presto

我有一个(id, name, creation_timestamp)的桌子

我想写一个查询,给出:

name, 2019-09-15, 2019-09-16, ... , 2019-10-15

列日期为最近30天。

在每一列中,每个名称的记录数都与日期匹配。

我知道如何将其创建为行

select  name
        ,cast ( creation_timestamp as DATE)
        ,count(1)
from my_bale 
group by name, cast ( creation_timestamp as DATE)

但这给了我3列,而日期列在第二列中。 如何将其转换为所需的输出?

让我们说我的桌子有

id, name , creation_timestamp
1    A     2019-10-10 21:52:22.904  
2   A     2019-10-10 22:52:22.904   
3   B    2019-10-10 21:52:22.904    
3    C  2019-10-11 21:52:22.904 

输出应为:

name, 2019-09-15, 2019-09-16, ... , 2019-10-10, 2019-10-11, ..., 2019-10-15
 A     0             0                 2           0                0
 B     0             0                 1           0                0
 C     0             0                 0           1                0

类似于问题sql date range in column and count by group,但没有得到任何答案

我正在使用Presto,但是本机SQL解决方案很棒

0 个答案:

没有答案