Filter unieke records (MySQL)

Uit De Vliegende Brigade
Naar navigatie springen Naar zoeken springen

Wat bedoel je: Dubbelen uitfilteren, of unieke records uitfilteren?

Subtiel doch belangrijk verschil! Misschien bedoel ik Duplicate records (MySQL)?

Voorbeeld: Is dit wat je bedoelt?

Deze query selecteert alle records die meer dan één keer voorkomen: Dat is meestal niet wat ik zoek ;)

select sku, count(sku) from root
group by sku having count(sku)>1

Voorbeeld: Bijna goed en dus precies fout

Deze query kopiëert alleen de records die maar één keer voorkomen. Dat was achteraf gezien niet wat ik zocht: Ik wil alle records maar één keer overnemen!

drop table if exists tmp;

create table tmp
select 

	tool_id, 
	count(tool_id) as teller 

from main_tmp 
group by tool_id     	-- Om een of andere reden is 'group by' noodzakelijk
having teller = 1;	-- 'where' werkt niet. 'having' wel

Media:Voorbeeld.ogg

DISTINCT

Met het keyword distinct kun je unieke waardes filteren. Het probleem is echter, dat je alleen maar die éne kolom kunt tonen (of zoiets). Dus net niet handig [1]

Bronnen