Невозможно PIVOT на базе данных ORACLE 10G - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь повернуть с оракулом 10G. Снимок экрана 1 - это фактические данные в таблице. Я пытаюсь получить данные как снимок экрана 2. Пожалуйста, предложите мне, функция PIVOT не работает в 10G. Screen shot1. Screen Shot2

1 Ответ

0 голосов
/ 03 мая 2018

Вы можете использовать conditional aggregation:

SELECT ANALYST
    ,COUNT(CASE WHEN status = 'unchecked'   THEN 1 END) AS unchecked
    ,COUNT(CASE WHEN status = 'observation' THEN 1 END) AS observation
    ,COUNT(CASE WHEN status = 'supervisor'  THEN 1 END) AS supervisor
    ,COUNT(CASE WHEN status = 'pending'     THEN 1 END) AS pending
    ,COUNT(CASE WHEN status = 'closed'      THEN 1 END) AS closed
    ,COUNT(*) AS Grand_Tot
FROM tab
GROUP BY ANALYST
ORDER BY ANALYST;

EDIT:

Могу ли я узнать, как суммировать столбец Grand_Tot вместе с запросом, который я пробовал SUM (Grand_Tot), но получаю ошибку в качестве неверного идентификатора.

Один из способов - использовать подзапрос:

SELECT sub.*, SUM(Grand_Tot) OVER() AS Sum_Grant_Tot
FROM (
    SELECT ANALYST
        ,COUNT(CASE WHEN status = 'unchecked'   THEN 1 END) AS unchecked
        ,COUNT(CASE WHEN status = 'observation' THEN 1 END) AS observation
        ,COUNT(CASE WHEN status = 'supervisor'  THEN 1 END) AS supervisor
        ,COUNT(CASE WHEN status = 'pending'     THEN 1 END) AS pending
        ,COUNT(CASE WHEN status = 'closed'      THEN 1 END) AS closed
        ,COUNT(*) AS Grand_Tot
    FROM tab
    GROUP BY ANALYST
) sub
ORDER BY ANALYST;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...