【发布时间】:2015-04-16 16:01:53
【问题描述】:
我对 PIVOT 功能还很陌生,过去一天半以来我一直在尝试解决这个问题,所以我想在潜伏了这么久之后创建一个帐户,然后问一下。
我有一张表格,布局如下:
AsOfDt AcctNum MntYr Dt Category Count
4/15/2015 12345 Jan-15 1/18/2015 Registered User 1
4/15/2015 12346 Feb-15 2/7/2015 New Registration User 1
4/15/2015 12347 Jan-15 1/27/2015 Unique Account 1
4/15/2015 12348 Jan-15 1/24/2015 Registered User 1
这是我想要达到的最终结果
MntYr Account Population New Registration User Registered User Unique Account
Jan 2015 330984 12 26212 26311
Feb 2015 331897 2953 58702 58894
Mar 2015 343561 950 29498 29638
Apr 2015 343181 675 8845 8916
Grand Total 1349623 4590 123257 123759
这是我目前构建的查询:
WITH BaseQuery AS (
SELECT
MntYr
,Category
,[Count]
FROM [dbo].[rpt_gen_WebPortal_TestingData]
)
SELECT [MntYr]
,'Account Population'
,'Unique Account'
,'Registered User'
,'New Registration User'
FROM BaseQuery
pivot (sum([count]) for MntYr
in ("Jan 2015", "Feb 2015", "Mar 2015", "Apr 2015" )
) AS Pivoting
我的第一个问题:
在第二个 SELECT 语句中,我的 MntYr 列出现错误,“列名 'MntYr' 无效。”我真的不明白为什么这会引发错误。当我在 BaseQuery 拉取中明确命名该列时,尝试拉取该列有什么问题?
我的第二个问题:
我还想根据(唯一帐户/帐户人口)的百分比创建一个计算字段,但我不太确定如何在 PIVOT 函数中处理计算字段。关于如何开始使用这个有什么想法吗?
任何和所有的帮助将不胜感激! 谢谢。
【问题讨论】:
-
对,这些是每个类别每月所有计数的总和。如果我不使用枢轴,您会如何建议?
-
这是一个枢轴,我只是对枢轴子句中的月/年值感到困惑。账户人数是多少?
-
这将是表中的另一种类别类型,只是没有显示在我拉出的行中。
标签: tsql pivot calculated-columns