Autor Zpráva
jrw
Profil
Načetl jsem data ze čtyř sloupců, a teď bych potřeboval ještě nějak zjistit kolikrát se který záznam opakuje, zkoušel jsem count() ale nefunguje to, nevíte někdo jak by se to dalo udělat?

Díky


SELECT sl_1 FROM `seznam`
union
SELECT sl_2 FROM `seznam`
union
SELECT sl_3 FROM `seznam`
union
SELECT sl_4 FROM `seznam`;
Zool
Profil *
Zkoušel jsi to takto zapsat??


SELECT COUNT(sl_1) as sl_11 FROM `seznam`
union
SELECT COUNT(sl_2) as sl_12 FROM `seznam`
union
SELECT COUNT(sl_3) as sl_13 FROM `seznam`
union
SELECT COUNT(sl_4) as sl_14 FROM `seznam`;
jrw
Profil
Teď jsem to zkusil a jako výsledek vyšel součet řádků prvního sloupce. Nedalo by se to napsat nějak jinak, třeba ten union není to pravé.
Kajman_
Profil *
select t.sl, count(*) pocet from
(SELECT sl_1 sl FROM `seznam`
union all
SELECT sl_2 FROM `seznam`
union all
SELECT sl_3 FROM `seznam`
union all
SELECT sl_4 FROM `seznam`) t
group by t.sl
order by 1
jrw
Profil
Jo to je přesně ono, mohl bych se zeptat co je to "t.sl"? A proč je alias "sl" jen na prvním sloupci? Pokud je to teda alias.
Kajman_
Profil *
t je povinný alias vnořeného selectu
sl stačí v prvním selectu, další selecty spojené unionem použijí vždy názvy sloupečků z prvního selectu
jrw
Profil
a jakým způsobem by se to dalo seřadit, třeba sestupně, aby měla levá půlka souvislot s pravou?
Kajman_
Profil *
Pokud máte pocit, že levá půlka nemá souvislosti s pravou, tak je něco špatně :-)

Pokud chcete seřadit podle počtu místo hodnoty, tak zkuste např.

order by 2 desc
jrw
Profil
To jsem se špatně vyjádříl, funguje to bezvadně ale když jsem to zkoušel tak se mi to nějak rozjelo.
Díky za odpověď
Toto téma je uzamčeno. Odpověď nelze zaslat.

0