问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

sql server pivot问题

发布网友 发布时间:2022-05-05 12:04

我来回答

2个回答

懂视网 时间:2022-05-05 16:25

SQL 关于pivot 解释: PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来转换表值表达式,并在必要时对最终输出中所需的任何其余的列值执行聚合。 还是通过实例来了解用法和作用: , city -- 所在城市 ): . ( ( 5 ) COLLATE Chinese_PRC_CI_AS N

SQL 关于pivot

解释: PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来转换表值表达式,并在必要时对最终输出中所需的任何其余的列值执行聚合。

还是通过实例来了解用法和作用:

,美国空间, city -- 所在城市):

.( (5) COLLATE Chinese_PRC_CI_AS NOT NULL, (10) COLLATE Chinese_PRC_CI_AS NOT NULL, ( ) )

向表一插入数据:

,); ,); ,); ,);

查询所插入的数据:

dbo.Customer

结果如图:

再建表二([dbo].[Orders] 字段说明:orderid -- 订单id , customerid -- 消费者id):

.( , (5) COLLATE Chinese_PRC_CI_AS NULL, ( ) )

向表二插入数据:

); ); ); ); ); ); insert into dbo.Orders values(7,null);

查询插入的数据:

dbo.orders

结果如图:

操作:

在了解PIVOT之前先看这一个题目:

题目1:每个所在城市的消费者的订单情况(请用“没有订单”,“小于两个订单”,“超过两个订单”)Sql语句如下:

, city , (orderid) (orderid) (orderid) dbo.Customers dbo.Orders as o on c.customerid = o.customerid group by c.customerid,city

结果如图:

这个很容易理解不作详解

再引入题目2:每个城市的每种订单情况(请用“没有订单”,“小于两个订单”,美国服务器,“超过两个订单”)的数

方法一:用普通的sql语句进行写:

消费者 , 消费者 , 消费者 ( , city , (orderid) (orderid) (orderid) dbo.Customers dbo.Orders as o on c.customerid = o.customerid group by c.customerid,city ) as d group by 所在城市

结果如图:

方法二:用pivot看它的神奇之处:

select 所在城市,没有订单,小于两个订单,超过两个订单 from ( , city , (orderid) (orderid) (orderid) dbo.Customers dbo.Orders as o on c.customerid = o.customerid group by c.customerid,city ) as d pivot(count(消费者) for 种类 in (没有订单,小于两个订单,超过两个订单)) as p

结果如图:

分析(在看分析时请结合方法一,便于理解):

在看方法二的sql语句可以发现pivot把d的两列(消费者,种类 )作为输入参数,美国空间,而没有作为输入参数(所在城市 )的列作了一个隐式的分组(相当于方法一最后的:group by 所在城市 ),其次它又对 in 子句作了如下操作sql操作:

消费者 end, 消费者 end, 消费者 end

最后对每个case表达式作指定聚合函数sql代码如下:

消费者 , 消费者 , 消费者

好了通过结合方法一与方法二 就应该能够理解pivot的用法了!

热心网友 时间:2022-05-05 13:33

select * into abc from (select * from iteminfo) a pivot (min(ItemName) for ID in ([1],[2])) b
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 生产要素的需求有何特点? 什么是生产要素需求 微观经济学要素需求什么是条件要素需求?它和要素需求有什么不同?_百度... 我的微信红包绑定了别人的银行卡。不知道支付密码。怎么解除绑定啊 抖音直播限流什么意思 那位老师告诉我:怎样彻底珊除看过的短视频,缓存看过的及朋友圈视频,内存越_百度问一问 本人陷入网贷10万多怎么求助?我想在朋友圈里发有没有模版?就是让朋友们都帮帮我脱离这个网贷? 打开天正建筑CAD没有提示注册,点击绘制墙体、轴网等工具,CAD显示未知命令 天正建筑2014为什么绘制轴网是未知命令 我下载安装了CAD2007和天正建筑7, 但是进入到天正建筑7里面快捷功能1不能使用,显示未知命令“**”什么的 天正建筑总是出现未知命令是什么原因 怎么样才能使天正建筑8.0不出现未知命令呢 天正建筑2013插不了图框是怎么回事?一插就出现命令: T91_TTitleFrame 未知命令“_百度问一问 求助:天正建筑CAD点击天正的命令按钮,总是出现未知命令,希望大家能帮我解决,谢谢 天正建筑出现未知命令怎么解决,请大神指教 天正建筑通用图库点击后出现未知命令T81_TKW怎么解决 天正建筑V8.5突然所有命令都是"未知命令"了,求助高手中? 请问,我的天正建筑怎么老是提示未知命令,那些指令都不能用的 为啥我的天正建筑1,2快捷键不管用显示未知命令? 天正建筑点击图标后有部分弹出对话框,部分出现未知命令怎么解决 如何使用 840dsl toolbox 中example files 有没有NC VAR SELECTOR软件中各变量的详细说明 土工布有效孔径测定仪哪家质量好?技术参数是怎样的? 有没有哪里可以快速借1万,钱到账之前不收取钱的急!!! 下载格式工厂要收费吗,在那里下载 人生得意须尽欢,莫使金樽空对月是哪首歌里面的 须尽欢小说txt全集免费下载 须尽欢是毛不易唱的吗 有一句话叫什么须尽欢 人为什么要活着?为了什么? 捷途X70与长安欧尚X7在安全配置上哪个更好? 哈弗H6榜首位置将失?仅差719辆,长安CS75 PLUS或将打破“神话” 落地10万左右,最实用、最省油的车,我看它们 长安欧尚X7的油耗高不高?这款车的性能到底怎么样? 长安欧尚X7手动挡这款车怎么样? 大境股份:3月,合资坚挺,豪车逆势上扬,自主品牌吉利力压奇瑞 户外试驾见真章,长安欧尚X7开起来怎么样? 长安欧尚X7竟敢现场拆车,到底有什么实力? 有去试驾过长安欧尚X7的朋友没,能说下这车的底盘做的到底怎么样啊? 用车报告:盲定买来的长安欧尚X7 用两个月以后说了实话 推出6种配置,长安欧尚X7配置分析 小米小爱音箱mini有没有微信收款播报功能 想买个小音箱连接的手机上用于微信收款提示,用得上蓝牙功能吗,怎么操作