如何理解行转列(SQL)
2018-06-17 22:56:48来源:未知 阅读 ()
对于老手来说,行转列已不稀奇。但对于新手来说,对行转列的思维方式还很模糊。
今天我要总结一下我所掌握的行转列的思维方式,以帮助有需要的朋友更清楚的理解行转列的方法。
行转列的理解方式:
行转列前,所有列的筛选条件都一样,只是被分组了。
行转列后,每一列各有自己的筛选条件,筛选条件就是行转列前所分组的值。
示例:
源数据:
SELECT user_name,dept_no FROM trm_user
要求统计每个部门下的人数:
SELECT
dept_no,count(1) AS 'count'
FROM trm_user
GROUP BY dept_no
行转列要求部门在第一行,第二行显示人数:
SELECT 'ATD','MACAU','AIAPT'
UNION all
select
convert(VARCHAR,count(CASE WHEN dept_no='ATD' THEN 1 END)),
convert(VARCHAR,count(CASE WHEN dept_no='MACAU' THEN 1 END)),
convert(VARCHAR,count(CASE WHEN dept_no='AIAPT' THEN 1 END))
FROM trm_user
对比:
总结:
行转列即是把行转列前的分行条件,分别作为行转列后的各列的筛选条件。
扩展:
易理解的写法:
SELECT 'ATD','MACAU','AIAPT'
UNION all
SELECT
convert(VARCHAR,(SELECT count(1) FROM trm_user WHERE dept_no='ATD')),
convert(VARCHAR,(SELECT count(1) FROM trm_user WHERE dept_no='MACAU')),
convert(VARCHAR,(SELECT count(1) FROM trm_user WHERE dept_no='AIAPT'))
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- mysql7.x如何单独安装mysql 2020-02-27
- linux下如何用源码安装mysql5.6.20 2020-02-27
- SQL如何查询语句优化 2020-02-26
- MySQL如何存储IP地址 2019-10-25
- 一文带你彻底理解Linux的各种终端类型及概念(1) 2019-09-30
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash