|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
Дата Статус1 А4 А5 А9 А14 B15 B16 B18 B20 A21 A24 A25 C Вообще, хочу получить результирующую таблицу: ДатаОт ДатаПо Статус113 А14 19 B20 24 A25 25 C Думаю как-то сделать группировку типа Код: sql 1. 2. 3.
Но не могу понять, как надо написать код, чтобы вышло то, что хочется. P.s. пример упрощён. Вместо "статус" у меня на самом деле десяток полей. Просто чтобы обозначить, что в одном из множества полей что-то поменялось. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 19:36 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
какая версия сервера? как вариант пронумеруйте ваши блоки статуса с помощью RANK (с сортировкой) и выбирайте max-min из получившегося набора ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 20:12 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
2017 Developer кстати, мысль. Точно. Сейчас попробую ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 20:14 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
хотя стоп... не складывается что-то. Одинаковый ранк присваивается первому и третьему блоку. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 20:33 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
RANK тут не поможет. Сначала получите точки смены - сравниваете Cтатус и его LAG() при сортировке по дате, если равен - 0, иначе 1. И затем по этому полю берёте кумулятивно SUM() - на выходе номер группы. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 20:36 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 20:43 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
Выглядит логично и пример 100% рабочий. Но как только начинаю применять его в жизни, выходит какая-то дичь результат становится непредсказуемым. Отличается только наличием where либо во внешнем запросе Код: sql 1. 2. 3. 4. 5. 6. 7.
Либо во внутреннем. Ниже на скриншоте рассмотрен мой вариант. Как так выходит, что в row_number игнорируется инструкция order by date? Отсортировано по дате, но столбец a2 заполнен так будто отсортировано по категории ... |
|||
:
Нравится:
Не нравится:
|
|||
25.04.2020, 23:38 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
Nika gnome Отсортировано по дате, но столбец a2 заполнен так будто отсортировано по категории Т.е. внутри каждой группы, которые различаются по критериям в partition by, записи нумеруются, от 1 и далее, по порядку, который установлен в соответствии с order by ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 01:02 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
Тогда вообще не понятно. Если вернуться к примеру, который мне посоветовали. Он работает против логики. Т.е. фактически одна и та же программа на моих данных для категории "А" продолжает нумерацию (шестёрка подчёркнута), а для простого примера от пользователя iap нумерация начинается с начала. Как так выходит? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 01:15 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
Nika gnome, UNICODE ("Статус") ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 01:22 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
Nika gnome Если вернуться к примеру, который мне посоветовали. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 01:24 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
Nika gnome Тогда вообще не понятно. Если вернуться к примеру, который мне посоветовали. Он работает против логики. У вас 2 разные группы, первая А, а вторая A Вы же знаете, что в вашем скрипте из первого поста одна А русская, а другая английская, да? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 01:32 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
alexeyvg, астрологи объявили неделю unicode троллинга. Возьмём код iap , данные для которого предоставил Nika gnome Код: sql 1. 2. 3. 4. 5. 6. 7.
ID V U1 А 104020 A 65 ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 01:38 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
alexeyvg Nika gnome Если вернуться к примеру, который мне посоветовали. да ведь текст-то выше. Суть в том, что я подменил его заготовленную таблицу на свою - и получил другой результат. Итак, код и результат Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 01:40 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
nullin alexeyvg, астрологи объявили неделю unicode троллинга. Возьмём код iap , данные для которого предоставил Nika gnome Код: sql 1. 2. 3. 4. 5. 6. 7.
ID V U1 А 104020 A 65 ссццукка)))) таки как решить-то эту задачу?)) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 01:41 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
вот вам по шагам алгоритм Код: sql 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.
позапускайте каждый сте, посмотрите где вас не устраивают результаты ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 08:36 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
nullin Возьмём код iap , данные для которого предоставил Nika gnome [SRC sql][/SRC] С UNICODE тоже можно заметить. Но я смотрю в редакторе, он у меня коды символов показывает. А подозрение возникло сразу же, после результата row_number, показанного ТС Nika gnome таки как решить-то эту задачу?)) Для таких задач используют LED-LAG, ну, или можно ссылаться на предыдущую через номер row_count Что бы здесь было легче помочь, начните с корректного примера (то есть без русских и английских А) :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 09:28 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
Nika gnome, вот, налабал на коленке: Код: sql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.04.2020, 09:47 |
|
Как сделать группировку по сортировке?
|
|||
---|---|---|---|
#18+
nullin Nika gnome, вот, налабал на коленке: Код: sql 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.
Какое же гениальное решение! Теперь не знаю, как без него жить. У меня есть несколько других сложных запросов, типа "как заполнить пустые значения последним не пустым" - поиск в и-нете показал, что на stackoverlow такой запрос порекомендовали выполнять рекурсивным запросом. Но вот это решение настолько простое и быстро работающее, что не идёт ни в какое сравнение с тем рекурсивным, громоздким. Прям круто! ... |
|||
:
Нравится:
Не нравится:
|
|||
01.05.2020, 23:30 |
|
|
start [/forum/topic.php?fid=46&msg=39951576&tid=1686166]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
25ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
59ms |
get tp. blocked users: |
2ms |
others: | 18ms |
total: | 148ms |
0 / 0 |