Autor Zpráva
Schmutzka
Profil
Zdravím,

nejspíš na to bude nějaká rychlá funkce, ale teď absolutně netuším, tak se zeptám.

Mám tabulku uživatelé a tabulku články. V tabulce články eviduji u každého článku ID jeho autora z tabulky uživatelé.
A chci vypsat uživatele dle počtu článků. Něco jako:

SELECT * FROM uživatelé ORDER BY "vyskyt(ID uzivatele) v tabulce clanky".
,

ale funkční.

To samé i pro sumu, například pokud má článek hodnocení, tak kolik má daný uživatel celkové hodnocení (to pak lomeno počtem na průměrné hodnocení). Děkuji za pomoc.
Kajman_
Profil *
Bude to skoro stejné, jako příklad ve faq na výpočet počtu komentářů. Jen to pak podle toho seřadíte.
http://diskuse.jakpsatweb.cz/?action=vthread&forum=28&topic=37836
Taps
Profil
Schmutzka
já bych to udělal nějak takto

SELECT u.jmeno_uzivatele as uzivatel,count(c.id_clanku) as pocet FROM uzivatele u left join clanky on u.id=c.id_autora ORDER BY 
pocet desc group by u.id




, 
Kajman_
Profil *
Jen order by bývá za group by a clanky mají mít asi alias c.
Schmutzka
Profil
Děkuji, chvíli to trvalo, než jsem si to omakal, ale potřebné jednoduché příkazy už ovládám.

Šlo by ještě nějak nenáročně dělat například to průměrné hodnocení?

Teď si vypisuji průměrné hodnoty do zvláštní tabulky stats (časem budu generovat jednou za x minut s rostoucí zátěží), což je možná úspornější, jelikož ještě potřebuji do stats věci, které zjistím jen pomocí složité funkce. A do dotazu se tato funkce jistě nevleze.

Takže průměrné hodnocení ve shrnutí: tabulka A, sloupec a, najít všechny záznamy v tabulce B kde sloupec b = sloupec a -> pro ty udělat sumu sloupce c z tabulky B a vydělit počtem sčítaných řádků sloupce c.
Kajman_
Profil *
avg(hodnoceni) prumer, sum(hodnoceni) soucet, count(hodnoceni) pocet

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