Autor | Zpráva | ||
---|---|---|---|
petr_svetr Profil * |
#1 · Zasláno: 25. 10. 2009, 22:05:54
Prosím poraďte, jak mám zjistit (a napsat dotaz), který vrátí pět nejvíce zastoupených hodnot v jednom sloupci jedné tabulky.
Jde o čísla (jsou to odkazy - id řádků v jiné tabulce). Typ DB MySQL ( MyISAM ). Diky za kazdou (nejlépe správnou) odpověď. |
||
Alphard Profil |
#2 · Zasláno: 25. 10. 2009, 22:14:03 · Upravil/a: Alphard
select sloupec, count(sloupec) pocet from tabulka group by sloupec order by pocet desc limit 5 Jestli vás údaje o počtu nezajímají, tak: select sloupec from tabulka group by sloupec order by count(sloupec) desc limit 5 |
||
Petr Svetr Profil |
#3 · Zasláno: 26. 10. 2009, 10:44:46
To je perfektní, děkuji moc.
|
||
Petr Svetr Profil |
#4 · Zasláno: 26. 10. 2009, 11:31:01
Výsledek mi vrací hodnotu ve sloupci 'sloupec', jak to ale mám udělat v případě že ještě potřebuji aby tato hodnota mohla odpovídat jen řádku v jiné tabulce s určitou hodnotou?
Takže... : chci znát pět řádků z tabulky A, u kterých je nejvíce zastoupena hodnota X a jejichž hodnota X je rovna identifikátoru takového řádku v tabulce B kde jeho hodnota Y je rovná dejme tomu řetězci 'm' . |
||
awef Profil * |
#5 · Zasláno: 26. 10. 2009, 11:41:26
select tabulka.sloupec, tabulka2.sloupec2,count(sloupec) as pocet from tabulka inner join tabulka2 on tabulka.pocet = tabulka2.sloupec2 group by tabulka.sloupec order by pocet desc limit 5
|
||
Petr Svetr Profil |
#6 · Zasláno: 26. 10. 2009, 12:00:40
Asi (teda celkem určitě) dělám někde botu:
$query = " select $tabA.path , $tabB.id, count(`path`) as `number_1` from $tabA inner join $tabB on $tabA.path = $tabB.item_type group by $tabA.path order by `number_1` desc limit 5"; ...kde kontroluji ze $tabB.nazevJinehoSloupce = hodnota (treba 'm') ? |
||
Časová prodleva: 14 let
|
0