(简单?)枢轴示例

时间:2013-12-10 15:12:26

标签: tsql pivot pivot-table

我在试图弄清楚我认为应该是一个非常基本的支点时遇到了麻烦。我曾尝试在这里和其他地方搜索类似“简单的枢轴示例”的内容,但我发现大多数示例对于我的穴居人脑来说都不够简单。

我在表格中有两个INT列,例如col1col2col1的值为210col2的值为15

我想要的输出是:

         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

其中每个值代表countcol1_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

但这不正确。

提前感谢您的帮助。

1 个答案:

答案 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