Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MySQL > sql hard


Автор: Vika91smile 15.8.2018, 20:35
Ребят help позязя  ^_^ написать правильный SQL запрос, заранее спасибки огромное. All Kiss smile 

Исходные
Задана Таблица test.boombox_html со сведениями об активности пользователей следующего вида: <ID-пользователя>,<page>,<дата-время посещения>.

Задание

= Написать в SQL запрос, который найдёт все сессии, в течение которых пользователь делал домашнее задание перед уроком, то есть совершил последовательность действий:
0.5) 0 или более раз заходил на любые страницы;
1) зашел на game.box-show (раздел со списком игр);
1.5) 0 или более раз заходил на любые страницы;
2) зашел на game.view.about (страница домашнего об игре);
2.5) 0 или более раз заходил на любые страницы;
3) зашел на game.content (страница игры);
3.5) 0 или более раз заходил на любые страницы.
Сессией называется активность пользователя, в которой между последовательными действиями проходит менее одного часа. Сессия начинается в момент первого из этих действий и заканчивается через час после последнего из них.
Результатом должна стать выгрузка сессий вида: <ID-пользователя>,<дата-время начала сессии>,<дата-время окончания сессии>. 

Автор: Akina 15.8.2018, 21:40
Делов-то... связать 5 копий таблицы по равенству юзера и попаданию в интервал времени, и выгрести нужное. На условия 1,5 и 2,5 - вообще начхать.

Автор: Akina 16.8.2018, 08:09
Создайте fiddle. Или хотя бы выложите (проверенные!!!) структуру таблицы (CREATE TABLE) и пример её наполнения (INSERT INTO), плюс желаемый результат на именно этих данных.

Автор: Vika91smile 16.8.2018, 15:04
user_id Time_ses page
1209 01.03.2017 11:17 game.box-show
1209 01.03.2017 11:17 game.view.about
1978 01.03.2017 11:36 game.content
1978 01.03.2017 11:42 game.content
1978 01.03.2017 10:42 game.content 

 smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)