2013-12-10 3 views
0

У меня возникли проблемы с попыткой выяснить, что я думаю, должно быть довольно основным стержнем. Я пробовал искать здесь и в других местах что-то вроде «простого примера поворота», но я обнаружил, что большинство примеров недостаточно просты для моего мозга пещерного человека.(Простой?) Пример сводной таблицы

У меня есть 2 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 

, но это не правильно.

Заранее за вашу помощь.

ответ

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 
+0

Спасибо, Стив. Это похоже на то, что близко, но не совсем. Это дает мне столбцы с именем 'col1_2',' col1_3' и т. Д., И значения являются значениями для всех значений 'col2'. Я пытаюсь получить 'col1_2 x col2_1',' col1_3 x col2_1' и т. Д. Это имеет смысл? – tptcat

+0

Вы пытаетесь умножить результаты поворота? –

+0

Я пытаюсь получить количество раз: 'col1' =' 2' где 'col2' =' 1', 'col1' =' 3' где 'col2' =' 1', ... 'col1' = '10' где' col2' = '5'. Я попытался показать это в моем примере желаемого вывода выше. – tptcat

Смежные вопросы