星空网 > 软件开发 > 数据库

行转列简单应用

数据库环境:SQL SERVER 2008R2

在SQL群看到这样的需求(截图),和对应的建表语句

行转列简单应用

下面是建表语句和初始化数据

CREATE TABLE T ( 日期 DATE, 数量 NUMERIC(18, 2) )INSERT INTO TVALUES ( '2015-01-01', 10 ),    ( '2015-01-02', 20 ),    ( '2015-02-01', 20 ),    ( '2015-03-01', 30 ),    ( '2015-04-01', 40 ),    ( '2016-01-01', 50 ),    ( '2016-02-01', 60 )

我简单的解释下这个需求,“月平均”字段之前是行转列的应用,“月平均”是指在该年内,有数据的月份的一个平均值,

“年平均”则是对该年12个月份的汇总的一个平均数。

将上述描述的计算方法简化为公式

月平均=该年有数据的月份总和/有数据的月份数

年平均=该年的数据总和/12

下面贴一下实现的SQL代码

/*比较关键的一步,整理数据,将年月作为一个分组条件求和,保证年月在整理好的数据集里是唯一的,方便后面统计有数据的月份数*/WITH  x0     AS ( SELECT  YEAR(日期) AS tyear ,            MONTH(日期) tmonth ,            SUM(数量) AS data        FROM   dbo.T        GROUP BY YEAR(日期),MONTH(日期)       )  SELECT tyear AS 年,MAX(CASE tmonth WHEN 1 THEN data END) [1],  MAX(CASE tmonth WHEN 2 THEN data END) [2],  MAX(CASE tmonth WHEN 3 THEN data END) [3],  MAX(CASE tmonth WHEN 4 THEN data END) [4],  MAX(CASE tmonth WHEN 5 THEN data END) [5],  MAX(CASE tmonth WHEN 6 THEN data END) [6],  MAX(CASE tmonth WHEN 7 THEN data END) [7],  MAX(CASE tmonth WHEN 8 THEN data END) [8],  MAX(CASE tmonth WHEN 9 THEN data END) [9],  MAX(CASE tmonth WHEN 10 THEN data END) [10],  MAX(CASE tmonth WHEN 11 THEN data END) [11],  MAX(CASE tmonth WHEN 12 THEN data END) [12],  CONVERT(NUMERIC(18,2),SUM(data)/COUNT(*)) AS 月平均,  CONVERT(NUMERIC(18,2),SUM(data)/12) AS 年平均--保留2位小数  FROM  x0 GROUP BY tyear

代码比较好理解,关键步骤是在整理数据阶段,相关说明已在代码里注释,这里不再赘述。

附上结果图

行转列简单应用

(本文完)

 




原标题:行转列简单应用

关键词:

*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: admin#shaoqun.com (#换成@)。

《德国vat税率在线计算网站省时又省力》:https://www.kjdsnews.com/a/1310784.html
《德国vat申报:完整的申报周期及详细操作流程》:https://www.kjdsnews.com/a/1310785.html
《德国vat tin税号:了解正确申报方式》:https://www.kjdsnews.com/a/1310786.html
《如何通过vat贸易公司打造一个稳定的国际市场》:https://www.kjdsnews.com/a/1310787.html
《如何确保你的企业遵守vat标准?》:https://www.kjdsnews.com/a/1310788.html
《如何在法国自主申报vat税收》:https://www.kjdsnews.com/a/1310789.html
活动回顾 | 千亚麦佳携手MoonSees呈现精彩亚马逊运营管理课程:https://www.kjdsnews.com/a/1836386.html
生日景点免费 上海景点生日免费景点:https://www.vstour.cn/a/363173.html
相关文章
我的浏览记录
最新相关资讯
海外公司注册 | 跨境电商服务平台 | 深圳旅行社 | 东南亚物流