|
|
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
Вообще говоря исходные данные выглядят как-то так: Таблица с записями о заходе пользователей на определенный ресурс: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Есть еще табличка, которая связывает поля timeslot и реальное время захода пользователя Из всего этого мне нужно получить распределение количества пользователей на каждом ресурсе по частоте за определенный промежуток времени. Что-то вроде этого: Код: sql 1. 2. 3. 4. где "1-10", "11-50" - это типа интервалы частоты. Так, "967" - это количество пользователей, которые посетили ресурс "8" от 1 до 10 раз за определенный промежуток времени. Так, я написал запрос, результат которого вот такая таблица (сайт, пользователь и его количество заходов на сайт за нужный мне промежуток времени): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Так, у сайта 18, будет стоять 5 в графе "1-10", а в остальных 0. И так далее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2014, 11:30:10 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
Стас0нВообще говоря исходные данные выглядят как-то так: Таблица с записями о заходе пользователей на определенный ресурс: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. Есть еще табличка, которая связывает поля timeslot и реальное время захода пользователя Из всего этого мне нужно получить распределение количества пользователей на каждом ресурсе по частоте за определенный промежуток времени. Что-то вроде этого: Код: sql 1. 2. 3. 4. где "1-10", "11-50" - это типа интервалы частоты. Так, "967" - это количество пользователей, которые посетили ресурс "8" от 1 до 10 раз за определенный промежуток времени. Так, я написал запрос, результат которого вот такая таблица (сайт, пользователь и его количество заходов на сайт за нужный мне промежуток времени): Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Так, у сайта 18, будет стоять 5 в графе "1-10", а в остальных 0. И так далее приведите пример исходных данных -- 5-10-15 строчек ( одна таблица ) и конкретный ожидаемый результат (в табличном виде а не словами, одна таблица ) из ЕТИХ конкретных (5-10-15 строчек) исходных данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2014, 15:04:15 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
Хорошо, вот исходные данные: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Результат: Код: sql 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2014, 23:53:16 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
Стас0нХорошо, вот исходные данные: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Результат: Код: sql 1. 2. 3. 4. приведите пример исходных данных -- 5-10-15 строчек (одна таблица) и конкретный ожидаемый результат (в табличном виде а не словами, одна таблица) из ЕТИХ КОНКРЕТНЫХ (5-10-15 строчек) исходных данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2014, 04:25:51 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. результат: Код: sql 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2014, 12:42:09 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
Стас0н, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2014, 15:10:04 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
Благодарю! Не совсем так, но я понял как нужно переделать запрос. Скажите, а можно оформить вывод так же, только чтобы интервалы частотные хранились, например, в temporary table? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. Просто, если нужно будет изменить интервал, то придется менять целую строку в запросе, а хочется, чтобы нужно было поменять только два числа в Temporary table - это возможно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2014, 17:18:32 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
Стас0н, напрямую -- врядли, варинат, который я знаю -- динамически генерировать СКЛ на клиентской стороне или в хранимой процедуре. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2014, 21:14:44 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
...если вы создаете всякие дрил-доуны репорты, то, как вариант, подумайте про мулти-дименшин репорты, ОЛАП, петахо, мсскл сервер и куча других. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2014, 21:17:33 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
Думаю, да, стоит посмотреть в ту сторону, как только тут закончу. Если кому интересно, то последний вопрос по тебе здесь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2014, 21:32:17 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
Стас0нПросто, если нужно будет изменить интервал, то придется менять целую строку в запросе, а хочется, чтобы нужно было поменять только два числа в Temporary table - это возможно?Идеального варианта нет, т.к. в MySQL в любом запросе может быть только определенное количество результирующих полей, их перечень не может меняться в процессе выполнения запроса. Неидеальные варианты: 1) Фиксированное количество диапазонов, границы хранить в таблице. 2) Произвольное количество диапазонов, но результат получать в одном поле в виде конкатенации (см. GROUP_CONCAT). 3) Не "разворачивать" диапазоны в горизонталь в запросе, а разворачивать уже на клиенте (удобно, если в итоге получается HTML или типа того). 4) Генерировать SQL на основе данных из таблицы с границами диапазонов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2014, 22:12:54 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
miksoftСтас0нПросто, если нужно будет изменить интервал, то придется менять целую строку в запросе, а хочется, чтобы нужно было поменять только два числа в Temporary table - это возможно?Идеального варианта нет, т.к. в MySQL в любом запросе может быть только определенное количество результирующих полей, их перечень не может меняться в процессе выполнения запроса. Неидеальные варианты: 1) Фиксированное количество диапазонов, границы хранить в таблице. 2) Произвольное количество диапазонов, но результат получать в одном поле в виде конкатенации (см. GROUP_CONCAT). 3) Не "разворачивать" диапазоны в горизонталь в запросе, а разворачивать уже на клиенте (удобно, если в итоге получается HTML или типа того). 4) Генерировать SQL на основе данных из таблицы с границами диапазонов. Я согласен тут полностью. Среди неидеальных вариантов хочется реализовать ваш п.1. Можете помочь в этом? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.09.2014, 23:42:23 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
Стас0нСреди неидеальных вариантов хочется реализовать ваш п.1. Можете помочь в этом? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Правда, динамические названия столбцов в этом варианте не получится сделать. Придётся дополнительно дёргать таблицу диапазонов с клиента. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 06:45:48 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
Благодарю, но проблема остается актуально - если изменится число запросов, то все-равно придется переписывать вот этот момент: Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 10:45:53 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
Стас0нБлагодарю, но проблема остается актуально - если изменится число запросов, то все-равно придется переписывать вот этот момент: Код: sql 1. 2. 3. 4. 5. Вы же хотели вариант по пункту 1 - вам его предложили. Не нравится - выбирайте другой вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 12:28:40 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
Виноват, подумал, что контекст предыдущих постов подскажет, что не хочется убирать/добавлять строки в случае, если нужно будет менять интервалы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 12:40:54 |
|
||
|
Достать распределение
|
|||
|---|---|---|---|
|
#18+
Стас0нпроблема остается актуально - если изменится число запросовкакая задача miksoft1) Фиксированное количество диапазонов, границы хранить в таблице.такое и решение Стас0нконтекст предыдущих постов подскажетсм.выше ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2014, 12:59:49 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=38751000&tid=1834213]: |
0ms |
get settings: |
8ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
36ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
32ms |
get tp. blocked users: |
1ms |
| others: | 244ms |
| total: | 340ms |

| 0 / 0 |
