Вопрос задан 09.06.2023 в 04:47. Предмет Информатика. Спрашивает Шуленин Александр.

Как написать это команду SELECT * FROM (SELECT JOB, SAL, DEPTNO FROM SCOTT.EMP) PIVOT ( SUM(SAL)

FOR DEPTNO IN (10, 20, 30)) с использованием rollup и cube?
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Филиппович Ярослав.

SELECT JOB,

      SUM(CASE WHEN DEPTNO = 10 THEN SAL ELSE 0 END) AS "DEPTNO 10",

      SUM(CASE WHEN DEPTNO = 20 THEN SAL ELSE 0 END) AS "DEPTNO 20",

      SUM(CASE WHEN DEPTNO = 30 THEN SAL ELSE 0 END) AS "DEPTNO 30"

FROM SCOTT.EMP

GROUP BY ROLLUP (JOB);

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Чтобы написать команду, использующую операторы ROLLUP и CUBE, для получения аналогичных результатов запроса с оператором PIVOT, можно использовать следующий код:

Для ROLLUP:

sql
SELECT JOB, SUM(SAL) AS "TOTAL_SALARY", DEPTNO FROM SCOTT.EMP GROUP BY ROLLUP(JOB, DEPTNO) ORDER BY JOB, DEPTNO;

Для CUBE:

sql
SELECT JOB, SUM(SAL) AS "TOTAL_SALARY", DEPTNO FROM SCOTT.EMP GROUP BY CUBE(JOB, DEPTNO) ORDER BY JOB, DEPTNO;

Обратите внимание, что в запросах с использованием операторов ROLLUP и CUBE вместо прямого указания столбцов DEPTNO и их значений (10, 20, 30), мы просто указываем столбец DEPTNO без ограничений. Это позволяет создать сводную таблицу, которая будет включать все возможные комбинации значений столбцов JOB и DEPTNO. Затем мы можем использовать условия ORDER BY для сортировки результатов в желаемом порядке.

Оба этих запроса создадут аналогичные результаты, которые вы получили с использованием оператора PIVOT.

0 0

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос