SQLite 数据透视:将长格式转换为宽格式
在 SQLite 中,数据透视是指将长格式存储的表转换为宽格式,以便更轻松地进行数据分析和处理。当处理每行具有多个测量值或属性的数据时,这尤其有用,因为它使我们能够以更结构化和可读的方式可视化数据。
要透视 SQLite 中的数据,您可以使用 JOIN 操作结合条件表达式,或者使用带有 GROUP BY 的 CASE 语句。以下是使用这两种技术完成透视的详细指南:
使用 JOIN 和条件表达式
此方法涉及使用 JOIN 和条件表达式以及 SUM() 函数来汇总每个所需列的数据。
<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
另一种方法是在 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中文网其他相关文章!