Одновременное использование DISTINCT и TOP
Я хочу использовать разные и верхние в одно и то же время, я сделал
SELECT distinct TOP 10 * FROM TableA
но у меня все еще есть дубликат PersonId, поэтому я должен:
SELECT distinct (personID) TOP 10 * FROM TableA
но синтаксис неверен, поэтому я задаюсь вопросом, есть ли какое-либо решение
спасибо,
Ответы
Ответ 1
Вы используете SELECT *
, который извлекает все записи. Если вы хотите использовать только истинный DISTINCT, введите столбец, в который хотите получить различные значения. Если у вас несколько столбцов, то все эти столбцы объединяются в одну отдельную запись.
SELECT distinct TOP 10 personID
FROM TableA
Обратите внимание, что без ORDER BY
это вернет первые 10 записей в определенном порядке. Результаты могут быть разными при каждом запуске запроса.
Ответ 2
Кажется, вам нужны 10 случайных записей для разных людей. Попробуйте следующее:
select t.*
from (select t.*,
row_number() over (partition by personid order by (select NULL)) as seqnum
from t
) t
where seqnum = 1
В общем, однако, при использовании top
вы также должны использовать order by
, чтобы указать, что вы имеете в виду под "top".
Ответ 3
выберите отдельное лицо из таблицы образца 10
Это работает в teradatap >
Ответ 4
Он работает просто, если вы используете такой запрос:
SELECT DISTINCT TOP 2 name FROM [ATTENDANCE] ;
В вышеприведенном запросе name
- это имя_столбца, а [ATTENDANCE]
- имя_таблицы.
Вы также можете использовать WHERE
для этого, чтобы сделать условия фильтрации.
Ответ 5
SELECT DISTINCT ta.personid FROM (SELECT TOP 10 * FROM TableA) ta
ta является объектом подзапроса, и с помощью объекта ta мы можем различать значения
Ответ 6
я исправил его, я сделал
select distinct personid from (SELECT TOP 10 * FROM TableA)
Ответ 7
Если цель состоит в том, чтобы выбрать первую 1 запись каждого идентификатора человека, используйте
select * from TableA group by personid
Поскольку вы выполняете "группу за", он будет возвращать каждый столбец, но будет игнорировать (не отображать) любые дополнительные строки с одним и тем же personId