Autor | Zpráva | ||
---|---|---|---|
Chatík Profil |
#1 · Zasláno: 10. 10. 2013, 19:51:13
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 |
#2 · Zasláno: 10. 10. 2013, 20:12:34
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 |
#3 · Zasláno: 10. 10. 2013, 20:20:15
Já Vám velice děkuji za Váš čas, funguje to perfektně.
Moc děkuji. |
||
Časová prodleva: 12 let
|
0