我在试图弄清楚我认为应该是一个非常基本的支点时遇到了麻烦。我曾尝试在这里和其他地方搜索类似“简单的枢轴示例”的内容,但我发现大多数示例对于我的穴居人脑来说都不够简单。
我在表格中有两个INT
列,例如col1
和col2
。 col1
的值为2
到10
。 col2
的值为1
到5
。
我想要的输出是:
col2_1 col2_2 col2_3 col2_4 col2_5
col1_2 10 5 2 6 7
col1_3 8 6 3 22 12
...
col1_10 20 2 0 3 90
其中每个值代表count
,col1_2 x col2_1
的出现次数(col1_3 x col2_1
),等等。
我试过这个:
SELECT
col1_2,
col1_3,
col1_4,
col1_5,
col1_6,
col1_7,
col1_8,
col1_9,
col1_10'
FROM
(
SELECT
col1,
col2
FROM
data_table
) AS tSource
PIVOT
(
COUNT(col2)
FOR col1 IN (2, 3, 4, 5, 6, 7, 8, 9, 10)
) AS tPivoted
但这不正确。
提前感谢您的帮助。
答案 0 :(得分:1)
SELECT
'col1_'+cast(col1 as varchar(2)),
isnull([1],0) [col2_1],
isnull([2],0) [col2_2],
isnull([3],0) [col2_3],
isnull([4],0) [col2_4],
isnull([5],0) [col2_5]
FROM
(Select col1, col2, Count(1) as cnt from table1
GROUP BY col1, col2) as tSource
PIVOT
(
SUM(cnt)
FOR COL2 in ([1],[2], [3], [4], [5])
) as tPivoted