Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Помогите пожалуйста с запросом..
|
|||
|---|---|---|---|
|
#18+
Здравствуйте. Не могу нормально сделать запрос, чтобы тот выполнялся быстрее (( Есть таблица results : PrjCode LineId upd U_PlanWC U_EndDate1736_00 1 2017-01-26 0 31.12.20171736_00 1 2017-01-26 850 31.12.20171736_00 2 2018-01-25 1200 31.12.20181736_00 2 2018-10-25 1800 31.12.20181736_00 3 2019-01-25 700 31.12.20191736_00 3 2019-10-23 920 31.12.20191742_00 1 2017-05-21 0 20.12.20171742_00 1 2017-05-21 650 20.12.20171742_00 2 2018-03-25 800 10.12.20181742_00 2 2018-10-20 950 10.12.2018 Надо получить: PrjCode upd U_PlanWC U_EndDate1736_00 2017-01-26 850 31.12.20171736_00 2018-01-25 2050 31.12.20181736_00 2018-10-25 2650 31.12.20181736_00 2019-01-25 3350 31.12.20191736_00 2019-10-23 3570 31.12.20191742_00 2017-05-21 650 20.12.20171742_00 2018-03-25 1450 10.12.20181742_00 2018-10-20 1600 10.12.2018 т.е. считается U_PlanWC и группировка по PrjCode и LineId . В первом "окне" (LineId=1) 850 складывается с первым значением второго "окна" (LineId=2) 1200 получается 2050, затем к 2050 добавляется разность второго и первого значений второго окна т.е. 2050 + 600 = 2650 и т.д. На сколько я знаю это называется нарастающий итог?! Вот моё решение. Считается правильно но уж сильно долго: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. Нужный результат в nxt. Думаю, что как то можно соптимизировать запрос но не знаю как (( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2019, 08:54 |
|
||
|
Помогите пожалуйста с запросом..
|
|||
|---|---|---|---|
|
#18+
MAULER, У вас нарастающий итог считается по результатам другой оконной функции, LAG(). Это разумеется долго. Мне кажется, LAG() вам здесь не нужен. Достаточно будет просто нарастающего итога. Правда, не очень понятно, как вы в вашем запросе ухитрились исключить из вывода первые строки в каждой группе. Я не вижу никакого where... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2019, 09:05 |
|
||
|
Помогите пожалуйста с запросом..
|
|||
|---|---|---|---|
|
#18+
Ennor Tiegael MAULER, У вас нарастающий итог считается по результатам другой оконной функции, LAG(). Это разумеется долго. Мне кажется, LAG() вам здесь не нужен. Достаточно будет просто нарастающего итога. Правда, не очень понятно, как вы в вашем запросе ухитрились исключить из вывода первые строки в каждой группе. Я не вижу никакого where... where есть, но в другом запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2019, 09:10 |
|
||
|
Помогите пожалуйста с запросом..
|
|||
|---|---|---|---|
|
#18+
Ennor Tiegael MAULER, Мне кажется, LAG() вам здесь не нужен. Достаточно будет просто нарастающего итога. Тогда считается не правильно (( Нужно как то разность вычислять в рамках одного "окна" по LineId ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2019, 09:29 |
|
||
|
Помогите пожалуйста с запросом..
|
|||
|---|---|---|---|
|
#18+
MAULER, Да, я понял. Тогда материализовывать в промежуточную времянку - надеюсь, этот код у вас не во вьюхе... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2019, 10:00 |
|
||
|
Помогите пожалуйста с запросом..
|
|||
|---|---|---|---|
|
#18+
Ennor Tiegael MAULER, Да, я понял. Тогда материализовывать в промежуточную времянку - надеюсь, этот код у вас не во вьюхе... Код должен быть во вьюхе (( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2019, 10:08 |
|
||
|
Помогите пожалуйста с запросом..
|
|||
|---|---|---|---|
|
#18+
План покажите или хотябы какие индексы в наличии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2019, 11:16 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=39892699&tid=1686908]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
41ms |
get tp. blocked users: |
1ms |
| others: | 236ms |
| total: | 372ms |

| 0 / 0 |
