|
Группировка строк по временным интервалам
|
|||
---|---|---|---|
#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.
Требуется посчитать вычислить минимальное и максимальное время для строк с определенным sid в разбивке на группы интервал между строками одной группы не должен превышать 5 минут. Я сделал такой запрос Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
На выходе имею набор записей вида Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Дальнейший обсчет делаю в java-программе, из которой запрос и вызывается, но, как мне кажется, можно написать запрос, который бы возвращал такой набор данных: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24.
Тогда через аналитику все можно было бы обсчитать на стороне БД и свернуть все результаты к виду Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Может какую-нибудь самописную функцию, которая бы мне пронумеровала группы? Дальше-то уже ничего сложного не остается. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2013, 22:58 |
|
Группировка строк по временным интервалам
|
|||
---|---|---|---|
#18+
Не совсем понял логику получения именно такого конечного результата, как ты показал, но на уровне "идеи как это сделать" могу предложить следующее: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
on-line проверка на sqlfiddle.com Если что, допилишь напильником до нужного состояния... ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 06:02 |
|
Группировка строк по временным интервалам
|
|||
---|---|---|---|
#18+
Добрый Э - Эх, спасибо. Логика простая: имея начало и конец интервала, я могу найти цепочки, которые длиннее 5 минут и состоят из минимум 2 записей из test_data. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 07:21 |
|
Группировка строк по временным интервалам
|
|||
---|---|---|---|
#18+
aleksandy, тогда в мой запрос всего-то нужно добавить HAVING count(1) > 1 ;) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 07:33 |
|
Группировка строк по временным интервалам
|
|||
---|---|---|---|
#18+
Добрый Э - Эх, Да я в курсе, все уже допилено и почти работает. Ещё раз спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 07:57 |
|
Группировка строк по временным интервалам
|
|||
---|---|---|---|
#18+
aleksandy, а почему "почти"? Давай уж допилим, чтобы работало железно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 08:21 |
|
Группировка строк по временным интервалам
|
|||
---|---|---|---|
#18+
Добрый Э - Эх, "почти", потому что дальнейшая обработка в java-программе ещё не до конца реализована. А то, что требовалось от скрипта, работает "на ура". Единственное, что меня сейчас настораживает, так это производительность на больших объемах. Но "это проблемы будущего Гомера..." :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2013, 08:40 |
|
|
start [/forum/topic.php?fid=53&gotonew=1&tid=1999176]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
28ms |
get topic data: |
13ms |
get first new msg: |
8ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
3ms |
others: | 12ms |
total: | 142ms |
0 / 0 |