SQL实现行列转换(MySQL)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37422289/article/details/80884978

示例数据:
col_index
(tablename为col_index)
实现行列转换的统计结果:
result

SQL语句:

SELECT c2,
SUM(CASE when c3 = '正式' then 1 else 0 END) as "正式",
SUM(CASE when c3 = '临时' then 1 else 0 END) as "临时"
FROM col_index
GROUP BY c2

虽然SQL的case功能确实很少接触过,面试遇到不会的题目确实很令人沮丧.
上述查询的要点在于sum 和 case返回1/0和GROUP BY.
唯一的不足在于需要提前知道列属性有多少种,即除了”正式”,”临时”还有哪些.
配合For可以解决这个问题.
吃一蛰长一智吧.

猜你喜欢

转载自blog.csdn.net/m0_37422289/article/details/80884978
今日推荐