社区微信群开通啦,扫一扫抢先加入社区官方微信群
社区微信群
示例数据:
(tablename为col_index)
实现行列转换的统计结果:
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可以解决这个问题.
吃一蛰长一智吧.
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!