SQL实现行列转换(MySQL) - Go语言中文社区

SQL实现行列转换(MySQL)


示例数据:
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可以解决这个问题.
吃一蛰长一智吧.

版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/m0_37422289/article/details/80884978
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2021-05-17 22:19:37
  • 阅读 ( 1305 )
  • 分类:数据库

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢