Извлечение 1 результата для каждого оператора IN в sql - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть большая таблица с множеством записей. Я хочу получить отдельную запись для каждого элемента в IN() в запросе

Пример:

select dccid, marketid from market where marketid in ('1','2','3'...)

В таблице market есть много записей для каждого marketid но мне просто нужна 1 запись для каждого рынка.

Как я могу это сделать?

1 Ответ

1 голос
/ 07 ноября 2019

Вы можете использовать функции окна:

select m.*
from (select m.*,
             row_number() over (partition by market_id order by market_id) as seqnum
      from market m
      where market_id in ( . . . )
     ) m
where seqnum = 1;

Вы можете изменить order by, чтобы получить конкретную строку - первый, последний, что угодно.

* 1008Тем не менее, я не понимаю, почему у вас есть дубликаты market_id в таблице с именем market. Похоже, что это должен быть первичный ключ.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...