SQL数据透视表语法
我有以下疑问:SQL数据透视表语法,sql,sql-server-2008,Sql,Sql Server 2008,我有以下疑问: SELECT INT_AUX_CONTACT.CONTACT_VISIBILITY_IND, INT_USER.ACCOUNT_NM FROM (INT_USER INNER JOIN INT_AUX_CONTACT_COLLECTION ON "INT_USER"."USER_ID"="INT_AUX_CONTACT_COLLECTION".IA_USER_ID) INNER JOIN INT_AUX_CONTACT ON INT_AUX_CO
SELECT
INT_AUX_CONTACT.CONTACT_VISIBILITY_IND,
INT_USER.ACCOUNT_NM
FROM (INT_USER
INNER JOIN INT_AUX_CONTACT_COLLECTION ON "INT_USER"."USER_ID"="INT_AUX_CONTACT_COLLECTION".IA_USER_ID)
INNER JOIN INT_AUX_CONTACT ON INT_AUX_CONTACT_COLLECTION.COLLECTION_ID=INT_AUX_CONTACT.COLLECTION_ID
WHERE INT_AUX_CONTACT_COLLECTION.COLLECTION_TYP_ID=1 AND INT_AUX_CONTACT.DELETED_IND=0
and ACTIVE_IND=1
返回以下结果示例:
contact_visibility_ind|account_nm
1 HR05
2 HR05
3 HR05
3 HR05
2 HR05
1 CH10
2 CH10
3 CH10
4 CH10
0 CH10
2 CH10
我想生成一个透视表,其结果表如下所示:
0 1 2 3 4
CH10 0 1 2 2 0
HR05 1 1 2 1 1
但每次尝试pivot函数时,我都会出现语法错误
有人有什么建议吗?
(很抱歉,我的表中没有网格线!)我不能100%确定您是如何得到透视表的最终派生的。我假设您要计算每次事件的数量(可能表中应交换
CH10
和HR05
)
只需将您的查询粘贴到
SELECT*fromResultOfQuery
占位符中。您的别名对我来说似乎是多余的。我遗漏了什么吗?别名是完全冗余的,我继承了查询。我将修改并重新发布这个问题。太好了。你关于PT推导的假设是正确的。谢谢你,先生。
SELECT account_nm, [0], [1], [2], [3], [4]
FROM
(SELECT *
FROM
ResultOfQuery
) x
PIVOT
(
COUNT(contact_visibility_ind)
FOR contact_visibility_ind IN ([0], [1], [2], [3], [4])
) y;