Autor | Zpráva | ||
---|---|---|---|
Tonny Profil |
#1 · Zasláno: 17. 7. 2014, 13:46:19
Zdravím,
řeším problém s vytvářením žebříčku pro zobrazení průběžného pořadí v horolezecké soutěži: Mám dvě tabulky: uzivatele a denicek V deníčku může mít každý uživatel 0 - hodně záznamů, které (krom jiných parametrů) mají i svou hodnotu v bodech (např. 931). Já potřebuji sestavit žebříček z těchto záznamů a to následujícím způsobem: Na prvním místě bude uživatel, u kterého je nejvyšší součet jeho prvních 10 záznamů (s nejvíce body) v tabulce denicek. Příklad: +----------------+-------------+ | uzivatel_jmeno | zaznam_body | +----------------+-------------+ | Pepa | 100 | | Pepa | 200 | | Pepa | 300 | | Franta | 10 | | Franta | 20 | | Franta | 500 | +----------------+-------------+ +----------+-------+ | uzivatel | Top10 | +----------+-------+ | Pepa | 600 | | Franta | 530 | +----------+-------+ (V ideálním případě bych potřeboval do třetího sloupečku vypsat ještě třeba jména těch záznamů, který se sečetly, ale to je detail, kterej kdyžtak dořeším jinak). ________ Teď to řeším pomocí nějaké temporary table a krom toho že je to velmi časově náročené mi to ani nefunguje docela správně (nejsem si úplně jistej, kde je chyba) ________ Díky moc za nápady ;) |
||
Chuchycek Profil |
Snad je to dobře.
SELECT uzivatel_jmeno, (SELECT SUM(zaznam_body) FROM (SELECT zaznam_body FROM denicek WHERE uzivatel = uzivatel_jmeno ORDER BY zaznam_body DESC LIMIT 10) AS pocet) AS top10 FROM uzivatele ORDER BY top10 DESC |
||
pcmanik Profil |
Chuchycek:
SELECT uzivatel_jmeno AS uzivatel, SUM(zaznam_body) AS Top10 FROM uzivatele u LEFT JOIN denicek d ON u.id = d.uzivatel_id GROUP BY uzivatel_jmeno ORDER BY Top10 DESC LIMIT 10 Dufam ze pri užívateľoch máte aj id a nielen mená. |
||
Časová prodleva: 11 let
|
0