ホームページ >データベース >mysql チュートリアル >SQLite で JOIN または CASE ステートメントを使用してロング フォーマット データをワイド フォーマットにピボットする方法
SQLite Pivot: ロングフォーマットからワイドフォーマットへの変換
SQLite では、ピボットとは、データの分析と処理を容易にするために、ロング フォーマットで保存されたテーブルをワイド フォーマットに変換することを指します。これは、より構造化された読みやすい方法でデータを視覚化できるため、行ごとに複数の測定値または属性を持つデータを操作する場合に特に便利です。
SQLite でデータをピボットするには、JOIN 操作と条件式を組み合わせて使用するか、CASE ステートメントと GROUP BY を使用します。両方の技術を使用して透視検査を完了するための詳細なガイドは次のとおりです:
JOIN と条件式を使用する
この方法では、SUM() 関数で JOIN および条件式を使用して、目的の各列のデータを要約します。
<code class="language-sql">select u.stuid, u.name, s3.marks as subjectid_3, s4.marks as subjectid_4, s5.marks as subjectid_5 from student_info u left outer join markdetails s3 on u.stuid = s3.stuid and s3.subjectid = 3 left outer join markdetails s4 on u.stuid = s4.stuid and s4.subjectid = 4 left outer join markdetails s5 on u.stuid = s5.stuid and s5.subjectid = 5;</code>
CASE ステートメントと GROUP BY を使用する
もう 1 つの方法は、GROUP BY 句で CASE ステートメントを使用することです。この手法では、必要な列ごとに行をグループ化し、さまざまなシナリオに基づいて集計値を計算します。
<code class="language-sql">select si.studid, si.name, sum(case when md.subjectid = 3 then md.marks end) subjectid_3, sum(case when md.subjectid = 4 then md.marks end) subjectid_4, sum(case when md.subjectid = 5 then md.marks end) subjectid_5 from student_info si join markdetails md on md.studid = si.studid group by si.studid, si.name;</code>
どちらの方法も SQLite でデータをピボットして、必要なワイド形式を提供するために使用できます。
以上がSQLite で JOIN または CASE ステートメントを使用してロング フォーマット データをワイド フォーマットにピボットする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。