Autor Zpráva
houbeless
Profil
Zdravim,
možná se najde někdo kdo by mohl vědět, jak by bylo možné nějak elegantně dostat unikátní záznamy ze sloupce tabulky.
Příklad:
Mám sloupec date a v něm je řada záznamů. A chci zjistit např. kolik roků tam je, ne kolik záznamů pro jednotlivé roky (např. 2007 - 3x, 2008 - 50x, 2009 - 60x), ale kolik let se v něm vyskytuje, třeba 2007, 2008, 2009 tzn. v tomto přip. jsou 3, takže by mi sql ty tři roky vypsalo....(a nebylo by od věci ještě do nějaké proměnné vložit tento jejich počet, tedy 3).

Mohl bych toto požadovat po sql?
Díky
nightfish
Profil
počet jedinečných roků
select count(distinct rok) pocet from tabulka


výpis roků vyskytujících se v tabulce, každý max. jednou
select distinct rok from tabulka
houbeless
Profil
Nj, když už člověk ví co hledat v manuálu, tak je to snadný.
Díky
houbeless
Profil
Takže výpis jedinečných roků jsem udělal takto:
SELECT DISTINCT DATE_FORMAT(time, '%Y') AS year FROM...

Pak ještě dostanu počet tech unikátních, ale chtěl jsem si trochu usnadnit práci a nedělat to ve dvou dotazech ale v jednom, samo mi to nefunguje, lze to provést nějak usporně asi takto?

SELECT DISTINCT DATE_FORMAT(time, '%Y') AS year, COUNT(DISTINCT DATE_FORMAT(time, '%Y')) yearnum FROM...

nebo to z principu nejde?
nightfish
Profil
možná by šlo
(select count(distinct date_format(time, '%Y')) from tabulka) union all (select distinct date_format(time, '%Y') from tabulka)

s tím, že první řádek výsledku bude počet roků a další řádky budou roky samotné...
houbeless
Profil
Jo, funguje to pěkně.
Díky moc
Toto téma je uzamčeno. Odpověď nelze zaslat.