|
|
|
Группировка идущих подряд повторяющихся строк
|
|||
|---|---|---|---|
|
#18+
Добрый день! Подскажите как сгруппировать идущие подряд повторяющиеся строки и посчитать сумму и количество строк по ним. Т.е. есть результат запроса: IDVALSUMMA10110151102022100242210028221003311044221052333100533331005733310059333100 Надо сгруппировать идущие подряд повторяющиеся строки по VAL с сортировкой по ID и вывести min(ID), max(ID), sum(SUMMA), count(*) т.е. получить такую таблицу: VAL min(ID) max(ID) sum(SUMMA) count(*)1101520222202830031333310122444410133352594004 min(ID) и max(ID) найти получилось: Код: 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.09.2017, 08:16 |
|
||
|
Группировка идущих подряд повторяющихся строк
|
|||
|---|---|---|---|
|
#18+
Сумму и кол-во можно найти с помощью вложенных select-ов: Код: 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. но такое решение не подходит, т.к. группируется большое кол-во строк, и с вложенными select-ами работает очень долго. Нужно решение без них. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 08:28 |
|
||
|
Группировка идущих подряд повторяющихся строк
|
|||
|---|---|---|---|
|
#18+
STFF start_of_group ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 08:45 |
|
||
|
Группировка идущих подряд повторяющихся строк
|
|||
|---|---|---|---|
|
#18+
Elic, Спасибо Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 09:34 |
|
||
|
Группировка идущих подряд повторяющихся строк
|
|||
|---|---|---|---|
|
#18+
Elic, присоединяюсь к благодарностям. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 11:04 |
|
||
|
Группировка идущих подряд повторяющихся строк
|
|||
|---|---|---|---|
|
#18+
Guest_group, чего-то ты сильно окольными путями пошел в решении своей простой задачки. можно же было вот так: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 11:15 |
|
||
|
Группировка идущих подряд повторяющихся строк
|
|||
|---|---|---|---|
|
#18+
Добрый Э - Эх, спасибо, но в твоём примере есть один нюанс, у тебя один grp_id может быть одинаковый для разных val, в моём примере он уникальный для всех групп Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. IDVALGRP_ID_VALGRP_ID_GLOBAL101011510120222224222228222233 1 3 3 44 22 3 4 5233375533337557333755933375 В данном примере это не критично, но в некоторых задачах на это стоит обратить внимание. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2017, 12:01 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=144&tid=1885199]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
60ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
35ms |
get tp. blocked users: |
1ms |
| others: | 278ms |
| total: | 419ms |

| 0 / 0 |
