SQLSERVER 列转行

SQLSERVER 列转行,第1张

第一:你的时间维度表基本没有意义,微软SSIS中心认为时间维度至少由日期构成主键。可以认为是最小基本业务颗粒。

来个Sample,更复杂的在我空间里。但是道理是一样的。都是借助动态SQL和一些函数。

----------------------------------------------------------------

/

作者:Edwin

数据库:SQL SERVER 2005+

作用:指定时间区间的自然周有几天,如果垮年度,由外围验证

Version 10

Copyright (c) 2015, SQL SERVER 2008

/

----------------------------------------------------------------

/参数设定区域,参数为开始时间和结束时间/

----------------------------------------------------------------

declare @FDate DateTime set @FDate = '2014-09-01 00:00:00000'

declare @Edate DateTime set @Edate = '2015-01-01 00:00:00000'

----------------------------------------------------------------

/SQL主体/

----------------------------------------------------------------

declare @WeekHeader nvarchar(max)

select @WeekHeader = coalesce(@WeekHeader+',['+cast(WeekOfYear as varchar)+']','['+cast(WeekOfYear as varchar)+ ']')

from 

(

 select WeekOfYear from ComnCalendar where DatePerDay>=@FDate and DatePerDay<@Edate group by WeekOfYear 

) M

declare @PivotSQL nvarchar(max) set @PivotSQL=N'

select

Year as 年份,'+@WeekHeader+'

from

(

    select [Year],WeekOfYear,DatePerDay from [DT_WareHouse][Comn][Calendar] where DatePerDay>=@FDate and DatePerDay<@Edate

) M

pivot

(

  count(DatePerDay) for [WeekOfYear] in('+@WeekHeader+')

) PVT'

exec sp_executesql @PivotSQL,N'@FDate datetime,@Edate datetime',@FDate,@Edate

执行结果:

在看一下时间维度表:

至于PVT标题别名问题,这个可以在时间维度表中创建字符串类型的第几周等样式的列来完成。

这种方式比较简单。

或是

----------------------------------------------------------------

/

作者:Edwin

数据库:SQL SERVER 2005+

作用:指定时间区间的自然周销售,统计周期为某一年,如果垮年度,由外围验证

Version 10

Copyright (c) 2015, SQL SERVER 2008

/

----------------------------------------------------------------

/参数设定区域,参数为开始时间和结束时间/

----------------------------------------------------------------

declare @FDate DateTime set @FDate = '2014-09-01 00:00:00000'

declare @Edate DateTime set @Edate = '2015-01-01 00:00:00000'

----------------------------------------------------------------

/SQL主体/

----------------------------------------------------------------

declare @WeekHeader nvarchar(max)

select @WeekHeader = coalesce(@WeekHeader+',['+cast(WeekOfYear as varchar)+']','['+cast(WeekOfYear as varchar)+ ']')

from 

(

 select ('第'+cast(WeekOfYear as varchar)+'周') as WeekOfYear from ComnCalendar where DatePerDay>=@FDate and DatePerDay<@Edate group by WeekOfYear 

) M

declare @PivotSQL nvarchar(max) set @PivotSQL=N'

select

Year as 年份,'+@WeekHeader+'

from

(

select [Year],(''第''+cast(WeekOfYear as varchar)+''周'') as WeekOfYear,DatePerDay from [DT_WareHouse][Comn][Calendar] where DatePerDay>=@FDate and DatePerDay<@Edate

) M

pivot

(

  count(DatePerDay) for [WeekOfYear] in('+@WeekHeader+')

) PVT'

exec sp_executesql @PivotSQL,N'@FDate datetime,@Edate datetime',@FDate,@Edate

结果:

常见的分析方法有:分类分析,矩阵分析,漏斗分析,相关分析,逻辑树分析,趋势分析,行为轨迹分析,等等。 我用HR的工作来举例,说明上面这些分析要怎么做,才能得出洞见。

01) 分类分析

比如分成不同部门、不同岗位层级、不同年龄段,来分析人才流失率。比如发现某个部门流失率特别高,那么就可以去分析。

02) 矩阵分析

比如公司有价值观和能力的考核,那么可以把考核结果做出矩阵图,能力强价值匹配的员工、能力强价值不匹配的员工、能力弱价值匹配的员工、能力弱价值不匹配的员工各占多少比例,从而发现公司的人才健康度。

03) 漏斗分析

比如记录招聘数据,投递简历、通过初筛、通过一面、通过二面、通过终面、接下Offer、成功入职、通过试用期,这就是一个完整的招聘漏斗,从数据中,可以看到哪个环节还可以优化。

04) 相关分析

比如公司各个分店的人才流失率差异较大,那么可以把各个分店的员工流失率,跟分店的一些特性(地理位置、薪酬水平、福利水平、员工年龄、管理人员年龄等)要素进行相关性分析,找到最能够挽留员工的关键因素。

05) 逻辑树分析

比如近期发现员工的满意度有所降低,那么就进行拆解,满意度跟薪酬、福利、职业发展、工作氛围有关,然后薪酬分为基本薪资和奖金,这样层层拆解,找出满意度各个影响因素里面的变化因素,从而得出洞见。

06) 趋势分析

比如人才流失率过去12个月的变化趋势。

07)行为轨迹分析

比如跟踪一个销售人员的行为轨迹,从入职、到开始产生业绩、到业绩快速增长、到疲惫期、到逐渐稳定。

SQL SERVER查询时间是一年中第几周,使用函数 datepart()。

例:查询 ‘2017-1-1’是2017年的第几周,语句如下

select datepart(wk,'2017-1-1')

datepart函数说明

一、函数功能:DATEPART() 函数用于返回日期/时间的单独部分,比如年、月、日、小时、分钟等等。

二、语法:DATEPART(datepart,date)

三、参数说明:date 参数是合法的日期表达式。datepart 参数可以是下列的值:

四、实例演示

假设我们有下面这个 "Orders" 表:

我们使用如下 SELECT 语句:

SELECT DATEPART(yyyy,OrderDate) AS OrderYear,

DATEPART(mm,OrderDate) AS OrderMonth,

DATEPART(dd,OrderDate) AS OrderDay

FROM Orders

WHERE OrderId=1

结果:

1 SQL(数据库),我们都知道数据分析师每天都会处理海量的数据,这些数据来源于数据库,那么怎么从数据库取数据,如何建立两表、三表之间的关系,怎么取到自己想要的特定的数据等等,这些数据选择问题就是你首要考虑的问题,而这些问题都是通过SQL解决的,所以SQL是数据分析的最基础的技能。

2 统计学基础,数据分析的前提要对数据有感知,数据如何收集,数据整体分布是怎样的,如果有时间维度的话随着时间的变化是怎样的,数据的平均值是什么,数据的最大值最小值指什么,数据相关与回归、时间序列分析和预测等等。

3Python或者R的基础,这一点是必备项也是加分项,在数据挖掘方向是必备项,语言相比较工具更加灵活也更加实用。

数据采集站工作原理是:利用一种无线模块,传感器,从系统外部采集数据并输入到系统内部的进行数据统计的一个应用系统。

其工作原理是从无线模块和传感器其它待测设备等模拟和数字被测单元中自动采集非电量或者电量信号,送到计算机系统中进行分析,处理。

数据采集是为了测量电压,电流,温度,压力,湿度,压力等物理现象而开发出一套应用系统,它基于无线模块,传感器等硬件结合应用软件和计算机,进行测量各种物理现象。

数据采集站的工作方式是:

数据采集的工作方式是将传感器采集到的各种物理现象转换成电讯号通过无线模块传输到计算机中,计算机又将电讯号传换成我们能理解的物理单位。

采集一般是采样方式,隔一段时间对同一点数据进行重复采集。采集的数据大多是瞬时值,也可以是某段时间内的一个特征值。

并且我国是作为世界第一制造大国,工业数据采集领域有着巨大的潜力,随着物联网不断的更新换代,企业也对工业数据采集的实时性,可靠性,专业性有着更加严格的要求。

相比较传统以往的数据采集,现在发工业数据采集逐步在往大数据领域不断的靠近,传统的数据采集来源单一,储存、管理等会显得越来越乏力,工业数据采集采集的发展会向着大数据方向靠拢发展。

以上就是关于SQLSERVER 列转行全部的内容,包括:SQLSERVER 列转行、数据分析方法、SQL SERVER查询时间是一年中第几周的函数等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9532697.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存