Autor Zpráva
petr_svetr
Profil *
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
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
To je perfektní, děkuji moc.
Petr Svetr
Profil
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 *
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
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') ?

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0