这个问题在这里已经有答案了:
如何在mysql中返回pivot表输出(9个答案)
两年前关门了。
我有以下问题-
包含数百万条记录的表格,格式如下-
Scale ID
01 2001
01 2001
03 2002
05 2003
78 2011
76 2010
so on ..
比例尺范围为01-100,id范围为2001-2011。
我想要一张新的表格,上面列出每年的每一个等级。
输出应该是这样的。
Scale 2001 2002 2003 2004 ---- 2011
1 2 0 0 0 ---- 0
2 0 0 0 0 ------ 0
3 0 1 0 0 ------- 0
4 0 0 0 0 ------ 0
5 0 0 1 0 ------ 0
-
-
-
-
100
尝试用sql来实现。任何帮助都会很好。
谢谢
2条答案
按热度按时间0s7z1bwu1#
如果你用的是mysql,你需要用很难的方法。。。
btxsgosb2#
可以使用条件聚合。
分组依据
scale
.在列列表中使用
CASE
检查id是否具有要在该列中显示的值。如果有,则返回任何非空值(例如。1
). 包裹count()
围绕着它。作为count()
不算数NULL
s、 以及CASE
退货NULL
默认情况下,当没有其他匹配项时,它将只统计id具有相应值的事件。这样地: