ホームページ >データベース >mysql チュートリアル >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>
この改良されたクエリにより、目的の出力が生成されます:
name | amountVal1 | amountVal2 |
---|---|---|
John | 2000 | 1888 |
Peter | 1999 | 1854 |
以上がCASE WHEN と GROUP BY を使用して SQL で列を正しくピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。