|
|
|
уникальные вхождения за период
|
|||
|---|---|---|---|
|
#18+
Уважаемые гуру, прошу совета. Есть таблица: Код: sql 1. 2. 3. 4. Нужно посчитать кол-во уникальных uname за предыдущую неделю для каждой даты. Вот запрос который считает кол-во уников за сутки: Код: sql 1. 2. 3. 4. 5. А нужно: Код: sql 1. 2. 3. 4. и так для каждой edate в таблице. Могу реализовать подобное с помощью внешнего скрипта, но хочется сделать на чистом SQL. Предполагаю, что нужны оконные ф-и, но не соображу как их применить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 11:17 |
|
||
|
уникальные вхождения за период
|
|||
|---|---|---|---|
|
#18+
Lonepsychoпосмотрите в сторону generate_series Извините, но не понимаю как generate_series может здесь помочь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 11:47 |
|
||
|
уникальные вхождения за период
|
|||
|---|---|---|---|
|
#18+
ПётрГриг, Код: sql 1. 2. 3. 4. 5. 6. чтото на подобии этого... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 12:10 |
|
||
|
уникальные вхождения за период
|
|||
|---|---|---|---|
|
#18+
ПётрГригУважаемые гуру, прошу совета. Есть таблица: Код: sql 1. 2. 3. 4. Нужно посчитать кол-во уникальных uname за предыдущую неделю для каждой даты. Вот запрос который считает кол-во уников за сутки: Код: sql 1. 2. 3. 4. 5. А нужно: Код: sql 1. 2. 3. 4. и так для каждой edate в таблице. Могу реализовать подобное с помощью внешнего скрипта, но хочется сделать на чистом SQL. Предполагаю, что нужны оконные ф-и, но не соображу как их применить. не понял, чем то "что нужно" отличается от того, что получено (групбаем). вы не могли бы попытаться донести вашу проблему немного более развёрнуто, своими словами, а не кодом ? если нужно вывести 0 для отсутствующих напрочь в таблице дат -- то как рекомендовал предыдущий оратор , но RIGHT JOIN--ом результата группировки (запрос 1 вашей темы, но с недельным ограничением) с серией. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 13:33 |
|
||
|
уникальные вхождения за период
|
|||
|---|---|---|---|
|
#18+
Lonepsycho, если я правильно понял идею, то вы хотите разбить таблицу на недельные интервалы и внутри них посчитать кол-во уникальных uname. Но это не то, что нужно. Нужно ДЛЯ КАЖДОЙ даты узнать кол-во уникальных uname за предыдущую неделю. Тупо в лоб это можно сделать следующим образом: Получить все даты: Код: sql 1. 2. А потом для каждой даты посчитать уников за неделю: Код: sql 1. 2. 3. Только это криво. Хотелось бы найти более правильный способ решения на чистом SQL. Наверняка это возможно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 14:38 |
|
||
|
уникальные вхождения за период
|
|||
|---|---|---|---|
|
#18+
qwwqне понял, чем то "что нужно" отличается от того, что получено (групбаем). вы не могли бы попытаться донести вашу проблему немного более развёрнуто, своими словами, а не кодом ? Это архивная таблица в неё заносится активности пользователей. Нужно для каждых суток посчитать сколько пользователей было активно за неделю. GROUP BY показывает кол-во уникальных пользователей за сутки, а нужны пользователи ЗА НЕДЕЛЮ, но для каждых суток. Т.е. в результате нужно получить примерно следующее: ..... 2016-01-28 - 1100 // уникальных uname с 01.21 по 01.28 2016-01-29 - 2500 // уникальных uname с 01.22 по 01.29 2016-01-30 - 3500 // уникальных uname с 01.23 по 01.30 2016-01-31 - 2200 // уникальных uname с 01.24 по 01.31 ..... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 14:40 |
|
||
|
уникальные вхождения за период
|
|||
|---|---|---|---|
|
#18+
Используй подзапрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 14:43 |
|
||
|
уникальные вхождения за период
|
|||
|---|---|---|---|
|
#18+
ПётрГригqwwqне понял, чем то "что нужно" отличается от того, что получено (групбаем). вы не могли бы попытаться донести вашу проблему немного более развёрнуто, своими словами, а не кодом ? Это архивная таблица в неё заносится активности пользователей. Нужно для каждых суток посчитать сколько пользователей было активно за неделю. GROUP BY показывает кол-во уникальных пользователей за сутки, а нужны пользователи ЗА НЕДЕЛЮ, но для каждых суток. Т.е. в результате нужно получить примерно следующее: ..... 2016-01-28 - 1100 // уникальных uname с 01.21 по 01.28 2016-01-29 - 2500 // уникальных uname с 01.22 по 01.29 2016-01-30 - 3500 // уникальных uname с 01.23 по 01.30 2016-01-31 - 2200 // уникальных uname с 01.24 по 01.31 ..... А если так Код: sql 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 15:13 |
|
||
|
уникальные вхождения за период
|
|||
|---|---|---|---|
|
#18+
big-trot, во-первых Код: plaintext во-вторых для скользящих нужно что--то типа range. или научиться эмулировать его чем то ещё. 18121603 т.е. дайте мне хотя бы умение сослаться на ТЕКУЩЕЕ значение поля в выражении для описания окна -- и я сэмулирую вам range. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 15:49 |
|
||
|
уникальные вхождения за период
|
|||
|---|---|---|---|
|
#18+
пока же -- Dimitry Sibiryakov выдал наиболее просто реализуемое предложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 15:51 |
|
||
|
уникальные вхождения за период
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovИспользуй подзапрос. Глупый вопрос - а как его использовать? qwwqпока же -- Dimitry Sibiryakov выдал наиболее просто реализуемое предложение. К сожалению не хватает знаний, что бы реализовать данное предложение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 16:01 |
|
||
|
уникальные вхождения за период
|
|||
|---|---|---|---|
|
#18+
ПётрГриг, если комбинировать ваши запросы, то как-то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. если таблица большая, то даты быстрее будет сгенерировать, используя generate_series и max/min из таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 16:20 |
|
||
|
уникальные вхождения за период
|
|||
|---|---|---|---|
|
#18+
LonepsychoПётрГриг, Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. чтото на подобии этого... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 16:28 |
|
||
|
уникальные вхождения за период
|
|||
|---|---|---|---|
|
#18+
AlexiusПётрГриг, если комбинировать ваши запросы, то как-то так: Код: sql 1. 2. 3. 4. 5. 6. 7. 8. Спасибо, коллега! То, что нужно! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.02.2016, 16:35 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=39159957&tid=1997479]: |
0ms |
get settings: |
8ms |
get forum list: |
24ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
200ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 229ms |
| total: | 531ms |

| 0 / 0 |
