最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
当前位置: 首页 - 科技 - 知识百科 - 正文

SQL关于pivot

来源:懂视网 责编:小采 时间:2020-11-09 10:08:31
文档

SQL关于pivot

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

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的用法了!

声明:本网页内容旨在传播知识,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文档

SQL关于pivot

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

最新推荐

猜你喜欢

热门推荐

专题
Top