有一个带有字段的表(id, name, count, date)
。
我如何进行查询,以便它也给出name
12 个月,每个月都有一个值count
?
也就是说,查询结果应该是这样的:
name | jan | feb | mar | apr | may | jun | jul | aug | sep | oct | nov | dec
sasha| 1 | 5 | 0 | 0 | 0 | 0 | 5 | 7 | 0 | 1 | 3 | 0
petya| 3 | 7 | 2 | 7 | 1 | 0 | 1 | 2 | 1 | 0 | 0 | 1
我做了子查询,也就是对每个月和每个名字分别计算count
,结果请求很长,几分钟就搞定了。
我想过listagg
,但结果我只需要这样一张桌子。
它可以通过一个函数来实现
PIVOT
,可以在这里找到。可重现的例子:结果(每隔一天,Petya 给出两个单位,Sasha 给出一个):
不过,我会提供
case
,以免pivot
孤单。没有大小写和完整月份名称的示例。
结论: