Počet albumů z databáze
Ahoj všem,
mám tabulku v databázy pojmenovanou zahranicni.
V ní jsou sloupce: Title,Artist,Albumartist,Genre,Album,Track,Year,Le ngth,Composer,Filename,Publisher,Contentgroup,Web, Discnumber,datum
Databáze obsahuje momentálně 36868 řádků, což jsou jednotlivé písně.
Potřeboval bych z tabulky dostat počet albumů,
Problém je v tom že název albumu se vyskytuje třeba u 10 skladeb, záleží na tom kolik dané album obsahuje skladeb.
Jak z tabulky dostat přesný počet albumů aby to počítalo tak jak má, takže pokud je v tabulce 12 skladeb z albumu aby ho to počítalo jako jedno. A pak zobrazilo přesný počet albumů z celé tabulky?
Děkuji za každou radu
Špatný návrh databáze, alba mají být v jedné tabulce, skladby ve druhé.
Díky, ještě mám problém v tom že se název alba někdy opakuje ovšem už je pod jiným interpretem.
Nyní co jsem koukal tak ho to sečte jen podle názvu a je jedno od jakého interpúreta to je.
To je právě tím chybným návrhem. Podle čeho se dá jasně identifikovat konkrétní album?
Podle Contentgroup
Tak do toho dotazu dej Contentgroup místo Album.
Asi jsem to špatně napsal, Název albumu je přesně definovaný ve sloupci Album ale přesně definovat se dá podle interpreta který je ve sloupci Contentgroup.
Protože se může stát že je název alba:
Greatest Hits a toto album nazpívali dvá různý interpreti.
Jedno třeba Johnny Cash a druhý třeba Don Williams.
Ale ten kód co jste mi dal, tak jakmile to najde ve sloupci Album stejný název tak ho to sečte jako jedno což je špatně když každé to album nazpíval někdo jiný.
Dá se toto nějak ošetčit a správně sečíst počet alb v databázy?
distinct Album, Contentgroup
Sice se opakuju, ale: kdyby jsi měl normální návrh databáze, tak bys tyhle problémy vůbec nemusel řešit.
Teď už to vím ale mám tam už přes 39000 řádků a předělávat to znovu se mi opravdu nechce.
Jdu to zkusit a díky ti.
39000 řádků je prkotina. Procedura, která by to rozházela do správných tabulek, by trvala přinejhorším minutu.
Samozřejmě pro toho kdo tomu rozumí tak ano.
Jinak díky funguje to.
Přeju hezký večer.
Chtěl bych poprosit ještě o jednu radu.
Tímto kódem si zobrazuji interpreti:
Potřeboval bych k těm interpretům zobrazit počet alb.
Interpret=Contentgroup
Byli by jste tak hodní a poradili mi nebo mi to napsali?
Budu velice vděčný.
SELECT Contentgroup, count(distinct Album, Contentgroup) as "pocet alb"...
Edit: teraz som si všimol group by ... ASC Nepletieš si to s order by ?
Nee group by, jinak díky pomohl si mi
Group by tam má byť,
ale ASC,DESC sa používa pri klauzule order by...
Jo to je pravda nemá to tam být. Dík.