Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Grouping by+rollup / 21 сообщений из 21, страница 1 из 1
20.11.2018, 09:24
    #39735422
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grouping by+rollup
Всем привет, друзья. Выполняю лабораторные работы по 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
20.11.2018, 09:57
    #39735441
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grouping by+rollup
dermamaсделал все работы ужеСудя по номеру "2.", ВСЕ это задание номер 1.
...
Рейтинг: 0 / 0
20.11.2018, 10:08
    #39735444
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grouping by+rollup
-2-,

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

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

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

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

Привет, не получается все, я просто не знаю с чего начать, знаю, что нужно избавиться от UNION, плюс данный код не выполнется пока не удалишь avg_comm из запроса select. что это за avg_comm и откуда оно взялось я не понимаю.
...
Рейтинг: 0 / 0
20.11.2018, 12:16
    #39735534
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grouping by+rollup
dermama я не понимаю.Похоже, я переоценил количество сделанных пунктов "все".
...
Рейтинг: 0 / 0
20.11.2018, 12:48
    #39735562
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grouping by+rollup
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
20.11.2018, 17:15
    #39735761
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grouping by+rollup
Stax,

Все верно, там действительно опечатка, при замене все работает.
...
Рейтинг: 0 / 0
20.11.2018, 17:29
    #39735771
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grouping by+rollup
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
20.11.2018, 17:32
    #39735772
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grouping by+rollup
dermama,

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

??
...
Рейтинг: 0 / 0
20.11.2018, 17:45
    #39735778
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grouping by+rollup
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
20.11.2018, 17:53
    #39735781
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grouping by+rollup
andreymx,

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

.....
stax
...
Рейтинг: 0 / 0
20.11.2018, 18:11
    #39735788
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grouping by+rollup
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
20.11.2018, 18:11
    #39735789
dermama
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Grouping by+rollup
Stax,

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

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

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

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

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

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

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

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

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


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