我有一个这样的表,有 3 列: 列1,列2,列3
我必须将这三列分组并计算计数。 我已经通过如下方式完成了小组:
select col5,col3,col2, count(*) from mytable group by col5,col3,col2
COL5 COL3 COL2 COUNT(*)
MOVIL A PRE 81.00
MOVIL B COM 466.00
MOVIL A COM 947.00
col2 中只有两个可能的值,即 PRE 和 COM 但我需要的是像下面这样的小改变:
COL5 COL3 PRE COM
MOVIL A 81 947
MOVIL B NULL 466
我认为 PIVOT 应该用于此目的。 但我不是 SQL 专家。有人可以帮忙吗?
最佳答案
您可以像这样使用 PIVOT (我认为 col2 只有两个值,而不是 col3):
SELECT *
FROM (select col5,col3,col2, count(*) from mytable group by col5,col3,col2)
PIVOT(MAX(CNT) FOR COL2 IN ('PRE','COM'));
关于用于转置某些列的 SQL 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39763126/