首页 > 数据库 > mysql教程 > 如何使用 CASE WHEN 和 GROUP BY 在 SQL 中正确透视列?

如何使用 CASE WHEN 和 GROUP BY 在 SQL 中正确透视列?

Mary-Kate Olsen
发布: 2025-01-11 15:56:41
原创
613 人浏览过

How to Correctly Pivot Columns in SQL Using CASE WHEN and GROUP BY?

使用CASE WHEN和正确的GROUP BY语句透视SQL列

问题描述:

为了根据特定条件将表中的一列透视成多列,SQL查询可以使用CASE WHEN表达式。但是,在实现此方法时,由于缺少分组,用户可能会遇到不正确的结果。

查询:

为了解决这个问题,下面提供了一个包含SUM()聚合函数和正确分组的修改后的查询:

<code class="language-sql">SELECT 
  name,
  SUM(CASE WHEN val = 1 THEN amount ELSE 0 END) AS amountVal1,
  SUM(CASE WHEN val = 2 THEN amount ELSE 0 END) AS amountVal2
FROM bank GROUP BY name</code>
登录后复制

解释:

  • SUM()函数应用于CASE WHEN表达式中,以计算每个name的每个val(1和2)的总金额。
  • GROUP BY name子句按name列对结果进行分组,确保每个不同name的金额都正确汇总。

预期结果:

此改进后的查询将产生所需输出:

name amountVal1 amountVal2
John 2000 1888
Peter 1999 1854

以上是如何使用 CASE WHEN 和 GROUP BY 在 SQL 中正确透视列?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板