当前位置: 首页 > wzjs >正文

如何高效建设品牌网站泉州网站建设技术外包

如何高效建设品牌网站,泉州网站建设技术外包,建e网如何合并多个全景图,汽车配件生产企业网站模板【SQL】常见SQL 行列转换的方法汇总 - 精华版 一、引言二、SQL常见的行列转换对比1. 行转列 Pivoting1.1 ​​CASE WHEN 聚合函数​​1.2 ​​IF 聚合函数​​1.3 ​​PIVOT操作符​​ 2.列转行 Unpivoting2.1 UNION ALL​​2.2 ​​EXPLODE函数(Hive/Spark&#…

【SQL】常见SQL 行列转换的方法汇总 - 精华版

  • 一、引言
  • 二、SQL常见的行列转换对比
    • 1. 行转列 Pivoting
      • 1.1 ​​CASE WHEN + 聚合函数​​
      • 1.2 ​​IF + 聚合函数​​
      • 1.3 ​​PIVOT操作符​​
    • 2.列转行 Unpivoting
      • 2.1 UNION ALL​​
      • 2.2 ​​EXPLODE函数(Hive/Spark)​
      • 2.3 ​​UNPIVOT操作符​​
  • 三、对比总结​​
  • ​​四、总结建议​​

一、引言

  • 近期参加了数据岗位的一些面试(如下图:近几年的面试数据),非常多的同学在简历上会写熟悉、精通SQL,但一旦进行原理性(对应数据开发岗)或者实操性(数据分析、数据产品岗)的沟通和测试,往往表现的不尽如人意。所以打算再开一个【SQL】的专栏,分享一些SQL的知识和技巧。
  • SQL专题往期内容:
    • 【SQL】基于多源SQL 去重方法对比 – 精华版
    • 【SQL】常见SQL 行列转换的方法汇总 - 精华版
      在这里插入图片描述

二、SQL常见的行列转换对比

1. 行转列 Pivoting

1.1 ​​CASE WHEN + 聚合函数​​

  • 实现方式​​:CASE条件判断生成新列,配合MAX/SUM等聚合函数处理数据。
  • 优点​​:兼容性强,适用于所有支持SQL的数据库。
  • 缺点​​:列固定时需手动编写大量条件,动态列处理困难。
# 示例
SELECT name,MAX(CASE WHEN skill='语文' THEN 1 ELSE 0 END) AS is_chinese,MAX(CASE WHEN skill='数学' THEN 1 ELSE 0 END) AS is_math
FROM A 
GROUP BY name;# PS:这里要注意,很多同学写的时候直接case when 就结束了,试想一下结束后的数据结构如下
| 姓名 | 是否语文 | 是否数学 |
| 张三 |  1     |   0     | 
| 张三 |  0     |   1     | # 我们需要的行转列后的一条记录,这也是为什么要用聚合函数再处理的原理
| 姓名 | 是否语文 | 是否数学 |
| 张三 |  1     |   1    | 

1.2 ​​IF + 聚合函数​​

  • ​​实现方式​​:类似CASE WHEN,但语法更简洁
  • 优点​​:语法简化,适合少量固定列。
  • 缺点​​:同case ,注意事项同case。
SELECT name,MAX(IF(course='语文', score, 0)) AS chinese
FROM A 
GROUP BY name;

1.3 ​​PIVOT操作符​​

  • 实现方式​​:专用于行转列的语法,需指定聚合函数和转换列。
  • ​​优点​​:语法简洁,逻辑清晰。
  • 缺点​​:仅支持部分数据库(如SQL Server、Oracle),动态列需结合动态SQL。
SELECT * FROM Sales 
PIVOT (SUM(Amount) FOR Month IN ([Jan-22], [Feb-22])) AS PivotTable;

2.列转行 Unpivoting

2.1 UNION ALL​​

  • 实现方式​​:将多列拆分为多个SELECT子查询后合并。
  • ​​优点​​:兼容性好,适用于所有数据库。
  • 缺点​​:代码冗余,列多时维护困难。
SELECT name, '语文' AS subject, is_chinese AS value FROM A WHERE is_chinese = 1
UNION ALL
SELECT name, '数学' AS subject, is_math FROM B WHERE is_math = 1 

2.2 ​​EXPLODE函数(Hive/Spark)​

  • ​​实现方式​​:将数组或拆分后的字符串转换为多行。
  • 优点​​:简洁高效,适合处理数组或分隔字符串。
  • 缺点​​:仅适用于支持EXPLODE的大数据平台(如Hive)。
SELECT name, subject FROM B 
LATERAL VIEW EXPLODE(SPLIT(subject, ',')) tmp AS subject;

2.3 ​​UNPIVOT操作符​​

  • 实现方式​​:专用于列转行的语法。
  • ​​优点​​:语法直观,逻辑清晰。
  • 缺点​​:仅支持部分数据库(如SQL Server)。

# 示例SQL Server
SELECT name, subject, value FROM A
UNPIVOT (value FOR subject IN (is_chinese, is_math)) AS UnpivotTable;

三、对比总结​​

方法适用场景优势劣势
CASE WHEN简单固定列的行转列所有数据库支持,兼容性强代码冗余,动态列处理困难
PIVOT/UNPIVOT支持该语法的数据库语法简洁,逻辑清晰动态列需结合动态SQL,兼容性差
UNION 系列列转行且列数较少所有数据库支持,简单通用代码冗余,维护成本高
EXPLODE大数据平台中的数组或字符串拆分高效简洁环境受限,仅Hive/Spark等

​​四、总结建议​​

类型优先级
行转列​​PIVOT(若数据库支持) > CASE WHEN
​​列转行UNPIVOT / EXPLODE > UNION ALL
动态列处理结合应用层逻辑生成SQL(如Java/Python拼接),或使用存储过程(偏应用场景,故这里不介绍)
  • 具体选择哪种类型实现,需要根据业务场景下,对应的数据库类型、数据量、列是否固定等等因素综合判断,从而选择相对较优的解。

文章转载自:

http://VIxW5SjX.mksny.cn
http://CBqUQSXh.mksny.cn
http://Xo5fChTb.mksny.cn
http://1B2qnEqD.mksny.cn
http://ECURYQpe.mksny.cn
http://WfsqyUlS.mksny.cn
http://pA9MRJCk.mksny.cn
http://7Qv1S91u.mksny.cn
http://LoQlTF7N.mksny.cn
http://bTzvZNDq.mksny.cn
http://5cMadzI1.mksny.cn
http://xFELCqG8.mksny.cn
http://Bze4Byum.mksny.cn
http://1jbub4bO.mksny.cn
http://LcJ05dK9.mksny.cn
http://kuLtPmeH.mksny.cn
http://a0pWsKwY.mksny.cn
http://EFSl2yVi.mksny.cn
http://M2oXjxAZ.mksny.cn
http://Pbs4ioOl.mksny.cn
http://c5xCsmhR.mksny.cn
http://zaZcoF4i.mksny.cn
http://SRURrKTn.mksny.cn
http://v40RqBYX.mksny.cn
http://LwxNNDwp.mksny.cn
http://76qfdZKR.mksny.cn
http://jDeNV2ts.mksny.cn
http://r2rxYWRv.mksny.cn
http://2snMtUKE.mksny.cn
http://0dt46GaN.mksny.cn
http://www.dtcms.com/wzjs/623052.html

相关文章:

  • 教育类网站 前置审批小程序开发一个要多少钱
  • 怎么创建自己的博客网站asp access网站开发实例精讲
  • 中国建设银行网站会员用户名WordPress小工具吗美化
  • 网站建设对接视频赌钱网站怎么做的
  • 东莞想做网站四川城乡建设网站证件查询
  • 网站建设收费wordpress同ip弹一次广告
  • 深圳中高端网站建设怎么样大连优化排名推广
  • 巴彦淖尔市 网站建设wordpress轮播图设置
  • 能打开任何网站浏览器网站建设管理意见
  • 离石网站建设公司2019银川住房建设规划信息网站
  • 网站管理员怎么联系seo专员是什么
  • 网站系统建设思想如何写网络推广需要什么
  • 站长之家综合查询工具青海网站制作公司
  • 网站制作视频教程古镇高端网站建设
  • 信息化管理系统软件湖南网站seo优化
  • app开发网站公司品牌推广广告
  • 网站连接微信网站建设费用价格表
  • 上海高端网站建设制作中国艺术设计联盟
  • 网络科技公司网站建设创立网站成本
  • 专业网络工程师培训北京关键词优化报价
  • 网站推广是干嘛的电商gpm是什么意思
  • 湖北网站建设联系电话wordpress怎么做产品列表页
  • 青岛在线制作网站wordpress绑定二级域名插件
  • 自己建的网站百度查找不到西安百度公司
  • 石油化工建设网站wordpress个人版支付
  • 施工方案下载免费网站鞍山网页制作
  • 公交车广告深圳优化网站公司哪家好
  • 做电影网站如何不侵权网站二维码可以做长按识别吗
  • 有些网站打不开怎么解决工程装饰网
  • wordpress 一直跳转到老域名厦门百度seo