powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Grouping by+rollup
21 сообщений из 21, страница 1 из 1
Grouping by+rollup
    #39735422
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет, друзья. Выполняю лабораторные работы по ORACLE и столькнулся с проблемой в данном задании, сделал все работы уже, а это не могу! прошу помощи в решении данного задания. Заранее благодарен.


2. Rewrite following query using ROLLUP and GROUPING function:

SELECT deptno as deptno , ename, sal, avg_comm
FROM
(SELECT 1 AS ord_num, TO_CHAR(deptno) AS deptno, ename, sal, NVL(comm, 0) AS avg_sum
FROM emp
UNION ALL
SELECT 2, TO_CHAR(deptno), 'ALL employees', SUM(sal), AVG(NVL(comm, 0))
FROM emp
GROUP BY deptno
UNION ALL
SELECT 3, NULL, 'ALL employees', SUM(sal), AVG(NVL(comm, 0))
FROM emp)
ORDER BY deptno, ord_num, ename;
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735441
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermamaсделал все работы ужеСудя по номеру "2.", ВСЕ это задание номер 1.
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735444
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
-2-,

Не конструктивно. У вас есть что то по теме вопроса?
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735448
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermamaУ вас есть что то по теме вопроса?Ленивый студент должен платить.
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735468
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Elic,

лахта 2 перехала ??
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735506
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermama,

avg_sum очепятка? что не получается?

....
stax
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735529
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

Привет, не получается все, я просто не знаю с чего начать, знаю, что нужно избавиться от UNION, плюс данный код не выполнется пока не удалишь avg_comm из запроса select. что это за avg_comm и откуда оно взялось я не понимаю.
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735534
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermama я не понимаю.Похоже, я переоценил количество сделанных пунктов "все".
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735562
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermamaStax,

Привет, не получается все, я просто не знаю с чего начать, знаю, что нужно избавиться от UNION, плюс данный код не выполнется пока не удалишь avg_comm из запроса select. что это за avg_comm и откуда оно взялось я не понимаю.

SELECT deptno as deptno , ename, sal, avg_comm
FROM
(SELECT 1 AS ord_num, TO_CHAR(deptno) AS deptno, ename, sal, NVL(comm, 0) AS avg_sum

імхо, очепятка (вместо avg_sum надо avg_comm)

сделайте сначала без avg_comm, потом добавите

зы
как пример
Скозная нумерация

зы
grouping_id проходили, если нет замените grouping

.....
stax
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735761
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

Все верно, там действительно опечатка, при замене все работает.
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735771
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

на данный момент получилось самое просто выражение

SELECT DISTINCT deptno, ename, sal, SUM(sal), AVG(sal), GROUPING(deptno), GROUPING(ename), GROUPING(sal)
FROM EMP
GROUP BY ROLLUP(deptno, ename, sal)
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735772
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermama,

Код: plsql
1.
AVG(NVL(comm, 0)) <> AVG(comm)
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735773
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andreymx,

??
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735778
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermama,

при условии ENAME - унікальное (иначе empno)

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
  1  select
  2    DEPTNO dept
  3   ,case
  4      when grouping(deptno)=1 then 'Всього по EMP'
  5      when grouping(ename)=1 then 'Всього по '||deptno
  6      else ENAME
  7      end ename
  8   ,sum(sal) sal
  9   ,avg(nvl(comm,0)) avg_comm
 10  from emp
 11* group by rollup((deptno),(ename))
SQL> /

      DEPT ENAME                       SAL   AVG_COMM
---------- -------------------- ---------- ----------
        10 KING                       5000          0
        10 CLARK                      2450          0
        10 MILLER                     1300          0
        10 Всього по 10               8750          0
        20 FORD                       3000          0
        20 ADAMS                      1100          0
        20 JONES                      2975          0
        20 SCOTT                      3000          0
        20 SMITH                       800          0
        20 Всього по 20              10875          0
        30 WARD                       1250        500
        30 ALLEN                      1600        300
        30 BLAKE                      2850          0
        30 JAMES                       950          0
        30 MARTIN                     1250       1400
        30 TURNER                     1500          0
        30 Всього по 30               9400 366,666667
           Всього по EMP             29025 157,142857

18 rows selected.



по чесному то надо еще добавить order by

.....
stax
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735781
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreymx,

у него в задании AVG(NVL(comm, 0))

.....
stax
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735788
andreymx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermamaandreymx,

??
Код: plsql
1.
2.
3.
4.
5.
6.
SELECT AVG(val), avg(nvl(val, 0))
  from
    (
        SELECT 1 val FROM dual UNION ALL
        SELECT NULL val FROM dual
    )
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735789
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

что вообще значат( select "1"
select "2"
select "3" )
именно цифры 1, 2, 3 в первоначальном запросе????
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735793
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

DEPTNO dept для чего используется псевдоним dept?
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735797
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermamaStax,

что вообще значат( select "1"
select "2"
select "3" )
именно цифры 1, 2, 3 в первоначальном запросе????

для сортировки результата union all

....
stax
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735798
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dermamaStax,

DEPTNO dept для чего используется псевдоним dept?

мне так было удобнее для теста
убрать как лишнее

.....
stax
...
Рейтинг: 0 / 0
Grouping by+rollup
    #39735804
dermama
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

благодарю, сейчас буду разбираться, что да как работает,потомучто теорию по GROUPING с ROLLUP прочитал, могу простые примеры делать, а когда чуть посложнее или преобразование у меня сильная путаница в голове, почему и что да как откуда берется....ПО ПРавде говоря, я и ваше преобразование не понял.
...
Рейтинг: 0 / 0
21 сообщений из 21, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Grouping by+rollup
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]