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

start [/forum/topic.php?fid=52&mobile=1&tid=1883077]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
156ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 210ms |
| total: | 460ms |

| 0 / 0 |
