|
|
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
Есть лог входа пользователей в систему с информацией пользователь-дата входа. USERAUTH_DATE1'01-01-2018'2'01-01-2018'1'02-01-2018'3'01-01-2018'1'03-01-2018' Как сделать запрос, который покажет кто из пользователей заходил каждый день в течении недели или месяца? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 12:58 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
sossisson, count(distinct ) + group by + having ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 13:02 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, это понятно. Но я хотел выбрать именно, где 7 дней подряд люди есть в логах. Я так понимаю, что без аналитических функций здесь не обойтись, но вот как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 16:10 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
Тебе и ответили count(distinct )=7 count(distinct )=30(31) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 16:12 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
982183, разве это будет работать, если пользователь заходил не все дни подряд, а были перерывы по 3-4 дня? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 16:15 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
Задача тогда не та, которую ты написал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 16:28 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
982183, я же написал в первом посте "запрос, который покажет кто из пользователей заходил каждый день в течении недели или месяца" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 16:33 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
Поищи темы про объединение временных промежутков. Сформируешь данные по типу: Код: plaintext 1. 2. 3. Ну и выбираешь те записи, у которых разница между датами >= 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 16:45 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
sossisson, Напишите Ваш селект, или хотябы тестовые данные в формате with, а то пока не понятно что вообще Вы хотите Код: plsql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 16:51 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
sossisson, надеюсь, AUTH_DATE имеет тип DATE? но в целом, "курите" в эту торону : trunc(AUTH_DATE) - dense_rank() over(partition by user order by trunc(AUTH_DATE)) as grp_id далее - группировка по user , grp_id и фильтрация результата группировки по уже упомянутому count(distinct trunc(AUTH_DATE)) в упомянутом же HAVING-е ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 16:53 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
sossissonв течении недели или месяцаа это течени е , все-таки, семь дней, семь суток или неделя. И течение месяца, это месяц или сколько-то там суток, в зависимости от ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 16:54 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
MaximaXXLsossisson, Напишите Ваш селект, или хотябы тестовые данные в формате with, а то пока не понятно что вообще Вы хотите Код: plsql 1. 2. 3. 4. 5. пользователь мог три дня ходить по сто раз, затем день перекурить и ещё четыре дня ходить по 10 раз. Будет ли это "семь дней подряд" в постановке автора? Вряд ли. А в решении вашим запросом? Запросто... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 16:55 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
sossisson, Думаю, вам надо пойти от обратного . Для выбранного интервала ищите даты когда данный пользователь не регистрировался. Если такой запрос вернет ноль записей , значит данный пользователь регистрировался каждый день. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 16:57 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
sossissonя же написал в первом посте "запрос, который покажет кто из пользователей заходил каждый день в течении недели или месяца" А выборку ты делаешь за неделю/месяц или за более длительный срок? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 16:58 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, Не совсем понятно при чем тут перекур в 1 день, если Вас смущает 1+ то это из за between который учитывает оба параметра. итого например между 07.01.2018 и 01.01.2018 разница 6 (а человек думает что 7 ) отсюда и появилось 1+ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 17:02 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
sossisson982183, разве это будет работать, если пользователь заходил не все дни подряд, а были перерывы по 3-4 дня? не важно сколько раз заходил count(distinct trunc (AUTH_DATE)) даст для одного дня 1 если были перерывы, то count не совпадет с к-вом дней за период другой вопрос, учитывать только рабочие дни или календарные? .... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 17:18 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
MaximaXXL, Дату начала и дату кончала - это уже вы сами додумали. В исходной постановке задачи у ТС про это нет ни слова. ;). Положим, период - плавающий. Первый пользователь логинился каждый день с первого по седьмое число. Второй - с десятого по шестнадцатое. Формально - оба логинились каждый день в течении недели. Но если ограничить период датами с шестого по двенадцатое, как предлагаете вы, то ни один пользователь не логинился семь дней подряд. Понимаете, о чем я? ;) Единственное, в чем с вами не поспоришь, так это то, что задача сформулирована очень размыто и нечетко. И каждый её решает, как понял. А что на самом деле нужно Т - ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 17:48 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
Щукина АннаMaximaXXL, Дату начала и дату кончала - это уже вы сами додумали. В исходной постановке задачи у ТС про это нет ни слова. ;). Положим, период - плавающий. Первый пользователь логинился каждый день с первого по седьмое число. Второй - с десятого по шестнадцатое. Формально - оба логинились каждый день в течении недели. Но если ограничить период датами с шестого по двенадцатое, как предлагаете вы, то ни один пользователь не логинился семь дней подряд. Понимаете, о чем я? ;) Единственное, в чем с вами не поспоришь, так это то, что задача сформулирована очень размыто и нечетко. И каждый её решает, как понял. А что на самом деле нужно ТС-у - одному ему известно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 17:49 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
Щукина Анна, мы по разному понимаем авторКак сделать запрос, который покажет кто из пользователей заходил каждый день в течении недели или месяца? я считаю что надо показать пользователей которые логинились каждый день за конкретный период, напр в октябре 2018 года ..... stax ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 18:01 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
sossisson, хорошо бы еще понимать в каком виде нужен аутпут Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Код: html 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2018, 18:41 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
mama.said, Выборку делаю за год. В общем, при помощи двух group by я могу добиться для каждого пользователя отображения того, сколько дней за год он логинился. Проблема в том, что я хочу найти тех, кто без перерыва на отпуски и больничные работал. Вот для этого и хочу найти того, кто подряд 7-20-100 дней заходил на сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 07:45 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
sossisson, Вам уже все возможные случаи подсказали, как решать. Осталось только выбрать наиболее подходящий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 07:57 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
sossissonПроблема в том, что я хочу найти тех, кто без перерыва на отпуски и больничные работал. Вот для этого и хочу найти того, кто подряд 7-20-100 дней заходил на сервер.7 дней подряд без отпуска это произвол! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 07:58 |
|
||
|
Простая выборка с данными
|
|||
|---|---|---|---|
|
#18+
sossissonПроблема в том, что я хочу найти тех, кто без перерыва на отпуски и больничные работал. а также без выходных и праздников, т.е 24/7/365. так это можно без запроса получить - сервер БД ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.12.2018, 08:54 |
|
||
|
|

start [/forum/topic.php?fid=52&fpage=91&tid=1883077]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 235ms |
| total: | 399ms |

| 0 / 0 |
