首頁 > 資料庫 > mysql教程 > 如何使用 CASE WHEN 和 GROUP BY 在 SQL 中正確透視列?

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

Mary-Kate Olsen
發布: 2025-01-11 15:56:41
原創
568 人瀏覽過

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
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板