前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Hey! Pivot Table!

Hey! Pivot Table!

作者头像
szhshp
发布2022-09-21 09:47:57
4610
发布2022-09-21 09:47:57
举报
文章被收录于专栏:szhshp 的第四边境中转站

Pivot Table In SQL Query

Example

here is an eg1

代码语言:javascript
复制
	SELECT * FROM (SELECT year(invoiceDate) as [year], left(datename(month,invoicedate),3)as [month], _
	InvoiceAmount as Amount FROM Invoice) as InvoiceResult 

使用 pivot 可以将竖着放的表处理成横着的一行一行

代码语言:javascript
复制
	SELECT *
	FROM (
	    SELECT 
	        year(invoiceDate) as [year],left(datename(month,invoicedate),3)as [month], 
	        InvoiceAmount as Amount 
	    FROM Invoice
	) as s
	PIVOT
	(
	    SUM(Amount) --可能对于原来的每个月会有多个数据,因此可以使用聚合函数
	    FOR [month] IN (jan, feb, mar, apr, 
	    may, jun, jul, aug, sep, oct, nov, dec)--只需要写字段的名称即可,不需要加单引号
	)AS pvt

Other Example

  • Before

一个 groupid 对应多个 item,每个 item 对应一个 value(哪个混蛋设计的数据库结构(゜皿゜メ) )

可能需要提取不同 item 对应的 value 因此将其做成透视表来处理

  • After

因为每个 itemcode 只可能有一个数据,因此使用 max 这样的聚合函数也没有问题

最终提取成一行之后就可以对不同的 itemcode 进行比较了

代码语言:javascript
复制
    --pivot table
    SELECT top(20) *
    FROM (
        SELECT datagroupid, itemcode, textanswer
        FROM profile_data
    ) as s
    PIVOT
    (
        max(textanswer)
        FOR itemcode IN (Incident_DateReported,Incident_AssignedTo,Incident_DueDate,Incident_CloseDate,Incident_Status)
    )AS pvt

参考文献


  1. http://www.codeproject.com/Tips/500811/Simple-Way-To-Use-Pivot-In-SQL-Query
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-12-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Pivot Table In SQL Query
    • Example
      • Other Example
        • 参考文献
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档