Найти уникальную строку, когда две строки, когда две строки имеют одинаковый идентификатор столбца, но имеют другой столбец, дата которого я хочу, чтобы новый набор - PullRequest
1 голос
/ 01 ноября 2019

Создайте запрос уникальных значений, но некоторые из них имеют одинаковые идентификаторы, но разные даты. Просто хочу самое новое свидание. Я объединяю несколько таблиц, но не знаю, как с этим справиться

SELECT DISTINCT ap.id, MAX(ap.date) 
FROM sometable;

Я пробовал этот код, но безрезультатно.

Я получаю следующие результаты:

id date
------------
1  10/31/18
1  10/15/18
2  11/05/17
2  11/04/17

Но я хочу эти результаты:

1  10/31/18
2  11/05/17

Ответы [ 2 ]

0 голосов
/ 01 ноября 2019

Если в вашем запросе есть и другие столбцы, которые вы хотите отобразить в результате, вам придется прибегнуть к аналитической функции, в этом случае ваш запрос будет выглядеть следующим образом

select id, the_date /* ,other columns */ from (
    select  row_number() over (partition by id 
            order by some_date /* your date column */ desc ) ord, 
    id, 
    some_date the_date    
    /* ,other columns */
    from <your_table>
) where ord = 1
;
0 голосов
/ 01 ноября 2019

Вам нужно сгруппировать по

SELECT ap.id, MAX(ap.date) 
from sometable ap
group by ap.id;

функции агрегирования как min (), max () ,, count (), нужно сгруппировать для возврата связанных агрегированных результатов

и длязапрос в вашем комментарии вы должны использовать

SELECT ap.id, MAX(ap.date) 
from sometable ap
where ap.id in ( id1, id2, id3.... idns) 
group by ap.id 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...