Autor Zpráva
Chatík
Profil
Přeji hezký večer,
vím že už jsem zdejší fórum zasypal mnoha otázkami ale potřeboval bych znovu poradit.

Použil jsem následný sql dotaz pro výpis duplicit.:
SELECT LName1,FName1, 
 COUNT(*) 
FROM NHL_Roster1
GROUP BY Team1
HAVING ( COUNT(*) > 1 )

Podle všeho by mi to mělo vypsat Příjmení, jméno z tabulky NHL_Roster1
Nyní čeho bych chtěl dosáhnout, potřeboval bych aby to vypsalo duplicity jen pokud se LName1 a FName1 vyskytuje ve stejném týmu, sloupec Team1. Ale asi budu muset v tom SQL dotazu tým definovat, no nevím třeba někdo poradí. Ve sloupci Team1 je zhruba 200 týmů a v každém z nich se mohou vyskytovat duplicity.
Druhý můj dotaz je jak sql dotazem dané duplicity samozřejmě jen ty kde je ve sloupci Team1 (ve stejném týmu) několikrát Fname1 a Lname1 odmazat a nechat jen jeden záznam.

Jestli bude mít někdo čas a náladu se tímto dotazem zabývat budu mu vděčný a za každou radu ještě vděčnější.
Kajman
Profil
K vypsání musíte seskupovat nejen podle týmu, ale i podle toho příjmení a jména
SELECT LName1, FName1, COUNT(*) 
FROM   NHL_Roster1
GROUP  BY LName1, FName1, Team1
HAVING ( COUNT(*) > 1 )

Pokud je Vám jedno, který z těch duplicitních řádků se smaže, tak si udělejte unikátní klíč na kombinaci těchto třech sloupců.
ALTER IGNORE TABLE NHL_Roster1 ADD UNIQUE INDEX un_team_lname_fname (Team1, LName1, FName1)

A před tím si samozřejmě nezapomeňte data zálovat, nebo provést dotaz na testovacích datech.
Chatík
Profil
Já Vám velice děkuji za Váš čas, funguje to perfektně.
Moc děkuji.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0