惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
MyScale Blog
MyScale Blog
U
Unit 42
M
MIT News - Artificial intelligence
小众软件
小众软件
P
Proofpoint News Feed
雷峰网
雷峰网
L
LangChain Blog
S
SegmentFault 最新的问题
腾讯CDC
F
Fortinet All Blogs
A
About on SuperTechFans
WordPress大学
WordPress大学
Vercel News
Vercel News
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
G
Google Developers Blog
大猫的无限游戏
大猫的无限游戏
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
D
Docker
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
Recent Announcements
Recent Announcements
D
DataBreaches.Net
Stack Overflow Blog
Stack Overflow Blog

Java不加糖的Blog

假设, AI 把我代替的那一刻真的到来 | szhshp 的第三边境研究所 小傻瓜都能懂的 AstrBot QQ 机器人集成 MCP 功能实战指南 | szhshp 的第三边境研究所 《智人之上: 从石器时代到 AI 时代的信息网络简史》阅读笔记 | szhshp 的第三边境研究所 iPadOS 26 无法设置空间场景图片壁纸的解决方法 | szhshp 的第三边境研究所 《一路云海》(终) | szhshp 的第三边境研究所 《一路云海》(四): 如何不按套路旅行 | szhshp 的第三边境研究所 《一路云海》(三): In Ya Mellow Tone | szhshp 的第三边境研究所 《一路云海》(二): 关西世博参观纪实 | szhshp 的第三边境研究所 《一路云海》(一): 新的征程 | szhshp 的第三边境研究所 2025 大阪世博会 [ 3 天前-先到先得 ] 阶段 场馆预约必中独家攻略 | szhshp 的第三边境研究所 Hackathon 随想 | szhshp 的第三边境研究所 一杯双皮奶 | szhshp 的第三边境研究所 Armbian + CasaOS + NAS 配置指南 | szhshp 的第三边境研究所 Docker 构建镜像报错: error getting credentials - err: exit status 1, out: `` | szhshp 的第三边境研究所 Disqus RIP! 论过高的维护成本如何治疗固执的坏习惯 | szhshp 的第三边境研究所 炸弹猫桌游变体规则 | szhshp 的第三边境研究所 《小岛经济学》阅读笔记 | szhshp 的第三边境研究所 《金钱心理学》阅读笔记 | szhshp 的第三边境研究所 为知笔记 RIP: 迁移剩余的笔记 | szhshp 的第三边境研究所 2025 博客第十年展望 - 再见我的过去 | szhshp 的第三边境研究所 我在独立游戏里面致敬的作品 | szhshp 的第三边境研究所 《How to make thing faster》阅读笔记 | szhshp 的第三边境研究所 《The Art of Clean Code》阅读笔记 | szhshp 的第三边境研究所 《Clean Architecture: A Craftsman Guide to Software Structure and Design》阅读笔记 | szhshp 的第三边境研究所 《How AI Works》阅读笔记 | szhshp 的第三边境研究所 游戏策划废案 - Project Uranus | szhshp 的第三边境研究所 游戏策划废案 - Project X | szhshp 的第三边境研究所 人生第一款独立游戏开发复盘 | szhshp 的第三边境研究所 Trap of Life | szhshp 的第三边境研究所 wireguard折腾记录
Hey! Pivot Table! | szhshp 的第三边境研究所
2015-12-11 · via Java不加糖的Blog

Meta

目录

Pivot Table In SQL Query

Example

here is an eg1

	SELECT * FROM (SELECT year(invoiceDate) as [year], left(datename(month,invoicedate),3)as [month], _
	InvoiceAmount as Amount FROM Invoice) as InvoiceResult 

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

	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进行比较了

    --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