Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Тормозит простейший SQL - запрос, Что не так ? / 8 сообщений из 8, страница 1 из 1
21.07.2021, 21:58
    #40085202
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит простейший SQL - запрос, Что не так ?
Код: 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.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
 -- Так тормозит
  with report as (
    
    select t1.minutes
           t1.hours
           t1.total 
           t1.view
      from table1 t1
     where t1.start >= to_date(concat(:start, ' 00:00:00'), 'dd.mm.yyyy hh24:mi:ss') 
      and t1.finish <= to_date(concat(:finish, ' 23:59:59'), 'dd.mm.yyyy hh24:mi:ss')
  )

  select 0 as sort 
        ,sum(r.minutes) as minutes
        ,sum(r.hours) as hours
        ,sum(r.total) as total
        ,r.view 
    from report r
    group by r.view 

  union all 

   select 1 as sort 
          ,sum(r.minutes) as minutes
          ,sum(r.hours) as hours
          ,sum(r.total) as total
          ,'Итог'
    from report r
   

  union all 

   select 2 as sort 
          ,sum(r.minutes) as minutes
          ,sum(r.hours) as hours
          ,sum(r.total) as total
          ,'Вид 1'
    from report r where r.view = 1;

-- Так нет
  with report as (
    
    select t1.minutes
           t1.hours
           t1.total 
           t1.view
      from table1 t1
     where t1.start >= to_date(concat(:start, ' 00:00:00'), 'dd.mm.yyyy hh24:mi:ss') 
      and t1.finish <= to_date(concat(:finish, ' 23:59:59'), 'dd.mm.yyyy hh24:mi:ss')
  )

  select 0 as sort 
        ,sum(r.minutes) as minutes
        ,sum(r.hours) as hours
        ,sum(r.total) as total
        ,r.view 
    from report r
    group by r.view 
...
Рейтинг: 0 / 0
21.07.2021, 22:04
    #40085207
gera3323
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит простейший SQL - запрос, Что не так ?
gera3323,

Точнее он вообще данный не возвращает.
...
Рейтинг: 0 / 0
22.07.2021, 09:30
    #40085282
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит простейший SQL - запрос, Что не так ?
gera3323
gera3323,

Точнее он вообще данный не возвращает.


"Так нет" -не возвращает, или "Так тормозит"?


ps
нет команды выполнить :,/
.....
stax
...
Рейтинг: 0 / 0
22.07.2021, 10:03
    #40085295
PuM256
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит простейший SQL - запрос, Что не так ?
gera3323,

Union all тут не нужен. Откройте для себя group by rollup.
...
Рейтинг: 0 / 0
22.07.2021, 10:13
    #40085301
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит простейший SQL - запрос, Что не так ?
PuM256
gera3323,

Union all тут не нужен. Откройте для себя group by rollup.


для ,'Вид 1' как будет выглядеть group by rollup?

.....
stax
...
Рейтинг: 0 / 0
22.07.2021, 10:17
    #40085303
PuM256
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит простейший SQL - запрос, Что не так ?
Stax,

Скорее всего, он не сильно-то и нужен. Значения те же, что и в первом запросе для r.view = 1.
...
Рейтинг: 0 / 0
22.07.2021, 11:18
    #40085323
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит простейший SQL - запрос, Что не так ?
PuM256
Stax,

Скорее всего, он не сильно-то и нужен. Значения те же, что и в первом запросе для r.view = 1.


для программера, возможно и не нужен

но для бухов, даже может и очень нужен ,
иногда такое захотят, на вопрос - зачем, ответ - надо и усе

.....
stax
...
Рейтинг: 0 / 0
22.07.2021, 14:12
    #40085416
Кобанчег
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Тормозит простейший SQL - запрос, Что не так ?
gera3323,

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select nvl(sort, y) sort, minutes, hours, total, view0
  from (select grouping_id(view0) as sort,
               sum(r.minutes) as minutes,
               sum(r.hours) as hours,
               sum(r.total) as total,
               view0,
               decode(view0,1,1) view1,
               null n
          from report r
         group by rollup(view0))
unpivot ((sort, view0) for y in ((sort, view0) as 1, (n, view1) as 2))
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Тормозит простейший SQL - запрос, Что не так ? / 8 сообщений из 8, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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