Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 09.06.2022, 12:02   #1
Zerg11
Новичок
Джуниор
 
Регистрация: 09.06.2022
Сообщений: 1
По умолчанию Правильная организация составных запросов на примере

Добрый день.
Уже довольно долго бьюсь над одним запросом, но пока желаемого результата не достиг. Есть сомнение в правильном ли я вообще двигаюсь направлении, поэтому решил обратиться к сообществу.
Есть таблица с полями: 'sessionId', 'userId', 'time'.
Задача состоит в следующем. Необходимо выбрать для каждого уникального 'userId', все записи содержащие в себе один из двух наиболее ранних уникальных 'sessionId'.
Замудрено наверное получилось попробую показать на примере:

Исходные данные:
input.png

Результат:
Output.png

В итоге мы избавились от записи "2|11000|08/06/2022 22:53:00" т.к. данный sessioId наиболее поздний и уже не влазит в лимит для данного userId.
Идея решения состоит в том чтобы в начале сделать выборку из уникальных userId, а уже по ним подбирать наши сессии.

Код:
WITH get_uniqueUserId AS (
SELECT DISTINCT userId
FROM tableName
)
 
SELECT DISTINCT ON (t.sessionId) t.sessionId, t.time, t.userId
FROM tableName t
INNER JOIN get_uniqueUserId
ON  get_uniqueUserId.userId = t.userId
WHERE get_uniqueUserId.userId = t.userId
ORDER BY t.sessionId, t.time
FETCH FIRST 2 ROWS ONLY
После выполнения данного запроса я получаю только две последние записи. Если брать "FETCH FIRST 2 ROWS ONLY" я получу все наборы sessioId без лимита на 2 уникальных. Буду признателен за любую помощь.
Zerg11 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Создание SQL запросов,сложных запросов,хранимых процедур,триггеров Anette666k Фриланс 2 10.05.2017 15:34
Создание SQL запросов,сложных запросов,триггеров - Заказать диплом, курсовую работу Anette666k Фриланс 2 07.05.2017 13:43
правильная организация навигации 9112 PHP 3 24.05.2012 00:46
Правильная организация системы плагинов-расширений Alexei91 Общие вопросы Delphi 4 26.09.2010 18:10
Правильная организация класса для работы с таблицей mysql Choo PHP 10 08.08.2008 08:55