sqlserver pivot函数_Oracle行转列函数Pivot简单用法

本文详细介绍了如何使用Excel Pivot函数根据2018年销售数据创建按月销售量汇总的报表,通过实例演示了Pivot函数的应用,包括数据筛选、聚合和输出。适合初学者理解基本操作和高级用户优化报表。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

因为工作中经常需要excel或者报表输出,了解到pivot函数,查了部分资料,实在不够详尽,便想自己写一篇。pivot了解不深,只写写简单用法。table t{c1,c2,c3,c4}数据表t,其中有字段c1,c2,c3,c4
select *   from (select c1,c2,c3,c4 from t)   pivot(func(c1) for c2 in (v1,v2,v3))

其中func(c1)表示对c1使用func聚合函数

将输出的字段是c3,c4,v1,v2,v3,其中v1,v2,v3可以单独写别名。select * 可将*换成c3,c4,v1,v2,v3其中想要输出的值

这条语句相当于创建了一个表t2

table t2{

v1,v2,v3,

c3,c4}

其中v1相当于select func(c1) from t group by c2,c3,c4 where c2 = v1,v2,v3同理,同时输出的c3、c4也是根据以上规则分组出来的结果显示。

一下来看个实例:

 CREATE table PRODUCT (  ID              NUMBER(10)    not null,  PRODUCT_NAME    VARCHAR2(50),  SELL_TIME       DATE,  SELL_COUNT      NUMBER(10),  constraint PK_PRODUCT primary key (ID));
插入如下数据:

 cc737edbec2aa2a809e8ee61a9e6c4d8.png

然后要做的是根据2018年各产品销售量给出各个月销售数量表执行以下sql:
SELECT *    FROM (SELECT A.PRODUCT_NAME, TO_CHAR(A.SELL_TIME,'mm') AS mon, A.SELL_COUNT FROM PRODUCT A WHERE TO_CHAR(A.SELL_TIME,'yyyy') = '2018')   PIVOT(SUM(SELL_COUNT)    FOR MON IN('01' M1,               '02' M2,               '03' M3,               '04' M4,               '05' M5,               '06' M6,               '07' M7,               '08' M8,               '09' M9,               '10' M10,               '11' M11,               '12' M12));

结果如下:

998aae0c9158bdd4e61979bcdbd213cb.png

温馨提示:pivot函数也适用于sql server

欢迎大家点个在看,分享至朋友圈

小编推荐阅读:

一起认识数据库

SQL Server2014安装图文详解

Mysql安装图文详解!手把手教会您从下载到安装成功

Oracle安装图文详解!手把手教会您从下载到安装成功

712511f4a03ddbe469fd170939996d72.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值