TSQL поворачивает таблицу без агрегации - PullRequest
0 голосов
/ 20 июля 2011

У меня есть эта таблица

name           hourOfDay                        score
bill             1                              22
bill             2                              28
bill             3                              29
bill             4                              24
bill             5                              34

и хотел бы эту таблицу

name                  1            2            3          4            5 

bill                  22           28           29         24           34

Прямо сейчас я делаю это с кучей соединений, есть ли быстрый способ сделать это? Моя таблица слишком велика, чтобы использовать соединения.

1 Ответ

1 голос
/ 20 июля 2011

Вы можете использовать PIVOT и агрегацию в любом случае.Попробуйте это:

SELECT *
FROM (SELECT name, HourOfDay, Score FROM YourTable) YT
PIVOT(MIN(Score) FOR HourOfDay IN ([1],[2],[3],.....,[24])) AS PT

Вы можете использовать MIN или MAX, поскольку результат должен быть одинаковым.

...