2016-03-30 2 views
1

У меня есть таблица, которая имеет следующие записиSQL Pivot с помощью счетчика

ID | column | value 
------------------------ 
1 | status | DONE 
2 | status | FAILED 
1 | progress | Green 
2 | progress | Red 

я хочу вывод как

ID | DONE | FAILED | GREEN | RED 
1 | 1 | 0  | 1  | 0 
2 | 0 | 1  | 0  | 1 

Пожалуйста, дайте мне знать запрос. Я попытался свернуть, но не получил результатов.

+0

вы должны разместить некоторый прогресс вы уже сделали это, мы можем помочь. – ehh

+0

Почему вы отметили SQL Server, если вы действительно используете Oracle? –

+0

да с использованием Oracle – PrMeAsAr

ответ

1

Вот стандартное решение поворота запроса, который не использует SQL Server встроенный в PIVOT возможности:

SELECT ID, 
    SUM(CASE WHEN value = 'DONE' THEN 1 ELSE 0 END) AS DONE, 
    SUM(CASE WHEN value = 'FAILED' THEN 1 ELSE 0 END) AS FAILED, 
    SUM(CASE WHEN value = 'Green' THEN 1 ELSE 0 END) AS GREEN, 
    SUM(CASE WHEN value = 'Red' THEN 1 ELSE 0 END) AS RED 
FROM yourTable 
GROUP BY ID 
+0

отсутствует 'пунктом от' – Squirrel

+0

лол ......... :) – Squirrel

+0

ВЫБОР KEY_VALUE, СУММА (случай, когда значение = 'DONE' Тогда 1 еще 0 концов) как 'DONE', SUM (CASE WHEN value = 'FAILED' THEN 1 ELSE 0 END) AS 'FAILED', SUM (CASE WHEN value = 'GREEN' THEN 1 ELSE 0 END) AS 'GREEN', SUM (CASE WHEN value = 'RED' THEN 1 ELSE 0 END) AS 'RED' FROM TABLE_NAME, где METRIC_NAME = 'METRIC_NAME' GROUP BY KEY_VALUE; Это дает мне ошибку ORA-00923: FROM ключевое слово не найдено там, где ожидалось 00923. 00000 - «Ключевое слово FROM не найдено, где ожидалось» * Причина: * Действие: Ошибка в строке: 56 Столбец: 58 – PrMeAsAr

1
SELECT * 
FROM atable 
PIVOT (
      COUNT(column) 
      FOR value in ([DONE], [FAILED], [GREEN], [RED]) 
     ) p 
Смежные вопросы