Получить 1 верхнюю строку для каждого идентификатора - PullRequest
0 голосов
/ 24 сентября 2019

Есть несколько постов об этом, но я не могу заставить его работать ... Я просто хочу выбрать только одну строку для каждого идентификатора, что-то вроде row_number () вместо Partition в oracle, но в доступе.

ty

SELECT a.*
FROM DATA as a
WHERE a.a_sku = (SELECT top 1 b.a_sku
           FROM DATA as b
           WHERE a.a_sku = b.a_sku)

но я получаю ту же таблицу Данные из нее

Образец таблицы DATA https://ibb.co/X4492fY

Ответы [ 2 ]

0 голосов
/ 25 сентября 2019

Если вам все равно, какая запись в каждой группе записей с соответствующими значениями a_sku возвращается, вы можете использовать функции First или Last, например:

select t.a_sku, first(t.field2), first(t.field3), ..., first(t.fieldN)
from data t
group by t.a_sku
0 голосов
/ 24 сентября 2019

Вы должны попробовать ниже запрос -

SELECT a.*
FROM DATA as a
WHERE a.Active = (SELECT b.Active
                  FROM DATA as b
                  WHERE a.a_sku = b.a_sku
                  AND a.Active < b.Active)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...