Используя row_number () в кустовом SQL, я могу отфильтровать дубликаты / выбрать первый экземпляр идентификатора, выбрав 1 в предложении where, как показано ниже. Что мне нужно здесь, это как найти последний экземпляр в каждой группе.
select * from
(select c1,c2,c3,c4,c5,id, row_number() over(partition by id ORDER BY id) as seq
from
table) as cnt where seq = 1;
Мое требование, например, если идентификатор 1212 имеет 3 экземпляра, а 1313 имеет 5 экземпляров в таблице, как показано ниже, я могу использовать вышеупомянутый запрос и получить только один экземпляр, выбрав 1 в предложении where. Но я хочу 3 для идентификатора 1212 и 5 для идентификатора 1313 ниже.
c1, c2, c3, c4, c5, ID seq
2020 2020 2020 2020 2020 1212 1
2021 2020 2021 2020 2021 1212 2
2022 2020 2022 2020 2022 1212 3
2023 2020 2023 2020 2023 1313 1
2024 2020 2024 2020 2024 1313 2
2025 2020 2025 2020 2025 1313 3
2026 2020 2026 2020 2026 1313 4
2026 2020 2026 2020 2026 1313 5