2014-08-08 4 views
1

Давайте рассмотрим, что у меня есть 10 строк данных, в которых есть дубликаты в столбце с именем PS_DRIVER. Мне нужно получить только одну строку для каждого значения в PS_DRIVER на основе самого высокого значения в PS_Completion_TS (временная метка). Примечание: Некоторые PS_DRIVER не имеют дубликатов, и в этом случае мне нужна эта строка.SQL: избежание дубликатов путем сравнения последовательных строк

+0

Редактировать ваш вопрос с тегом базы данных, SQL является просто язык. – Mihai

+0

В зависимости от вашей базы данных вы можете использовать функции ранжирования, чтобы получить максимальную ценность. Если ваша база данных не имеет таких функций, вы можете использовать подзапросы для получения тех же результатов. Какую базу данных вы используете? –

ответ

0

Попробуйте это:

select td.PS_DRIVER 
from tabDrivers td 
where td.PS_Completion_TS in (select max(td2.PS_Completion_TS) 
           from tabDrivers td2 
           where td2.PS_DRIVER = td.PS_DRIVER ) 
+0

Это сработало. Благодарю. – Anbuvictor

Смежные вопросы