Autor | Zpráva | ||
---|---|---|---|
jrw Profil |
#1 · Zasláno: 20. 11. 2007, 20:54:15
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 * |
#2 · Zasláno: 20. 11. 2007, 21:03:51
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 |
#3 · Zasláno: 20. 11. 2007, 21:10:07
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 * |
#4 · Zasláno: 20. 11. 2007, 21:16:36
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 |
#5 · Zasláno: 20. 11. 2007, 21:32:15
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 * |
#6 · Zasláno: 20. 11. 2007, 21:38:18
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 |
#7 · Zasláno: 20. 11. 2007, 21:52:02
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 * |
#8 · Zasláno: 20. 11. 2007, 21:56:13
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 |
#9 · Zasláno: 20. 11. 2007, 22:03:34
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ěď |
||
Časová prodleva: 16 let
|
Toto téma je uzamčeno. Odpověď nelze zaslat.
0