/ / Vybrať Jedinečné riadky z dát (bez matiple kľúčových hodnôt a rok) pomocou SQL - sql, sql-server, sql-server-2008, sql-server-2012

Vyberte z údajov dáta jedinečné riadky (bez menších kľúčových hodnôt a rok) pomocou SQL - sql, sql-server, sql-server-2008, sql-server-2012

Prichádzajúce údaje Vyzerá to takto:

ID  Key Year
1   2288    2013
1   2288    2014
1   2831    2012
1   3723    2012
1   5005    2012

Hodnota o / p by mala byť

ID  Key     Year
1   2288    2013
1   2288    2014

Ak existuje viac "kľúčových" hodnôt "pre ten istý identifikátor a rok, potom by tieto riadky mali byť odstránené.

odpovede:

0 pre odpoveď č. 1

Skupina podľa ID a roku.

SELECT ID, MIN(KEY), YEAR
FROM TABLE
GROUP BY ID, YEAR
HAVING COUNT(KEY)=1

0 pre odpoveď č. 2

použitie Window Function získať min kľúčovú hodnotu v každom z nich year keď je duplikovaný.

Select ID, Key, Year from
(
select *,row_number() over(partition by Id,Year order by key) Rn
)a
where rn=1

0 pre odpoveď č. 3

vyskúšať

Select
ID, Key, Year
from
table
group by
ID, Year
having
count(*) = 1