有一个带有字段的表(id, name, count, date)。
我如何进行查询,以便它也给出name12 个月,每个月都有一个值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孤单。没有大小写和完整月份名称的示例。
结论: