Zadejte hledaný výraz...

Výběr x záznamů z každé skupiny

crs
verified
rating uzivatele
(1 hodnocení)
10. 4. 2017 13:22:19
Zdravím.
Mám tabulku `zpravy`, která má pole id, titulek, obsah, cas_pridani, kategorie. Pole `kategorie` nabývá několika málo hodnot jako: domácí, zahraniční, ekonomika, sport, počasí...
Tabulku mám naplněnou zprávami, tak, jak přišly.
Potřebuju dotaz, který zobrazí 5 záznamů postupně od každého typu, ty (v rámci kategorie) seřazené podle času přidání.
Mám už fungující řešení, které používá poddotazy, jež spojuje přes UNION.
Existuje lepší řešení - bez poddotazů, bez explicitního vyjmenovávání kategorií?
Díky
10. 4. 2017 13:22:19
https://webtrh.cz/diskuse/vyber-x-zaznamu-z-kazde-skupiny#reply1272555
MAHI
verified
rating uzivatele
(15 hodnocení)
10. 4. 2017 14:54:46
Pokud už ti to funguje s UNION a nebudou přibývat kategorie, tak bych to tak nechal. :)
Šlo by to řešit i:
a) pomocnou proměnnou
b) s PARTITION BY nějak takhle:
SELECT rs.titulek,rs.obsah
FROM (
SELECT titulek,obsah, Rank()
over (Partition BY kategorie
ORDER BY cas_pridani DESC ) AS Rank
FROM table
) rs WHERE Rank <= 5
10. 4. 2017 14:54:46
https://webtrh.cz/diskuse/vyber-x-zaznamu-z-kazde-skupiny#reply1272554
crs
verified
rating uzivatele
(1 hodnocení)
10. 4. 2017 18:06:49
Napsal Marek Heřman;1378781
Pokud už ti to funguje s UNION a nebudou přibývat kategorie, tak bych to tak nechal.
Ptal jsem se, jestli existuje lepší řešení - ve smyslu rychlosti, náročnosti na DBMS, optimalizace...
(Podotázka k tomuto - je vhodné mít dva indexy - kategorie a cas_pridani - nebo jeden kombinovaný (kategorie, cas_pridani)?)
Napsal Marek Heřman;1378781
b) s PARTITION BY nějak takhle:
Mám MySQL/MariaDB verzi 5.5.5-10.1.21 pod Win32. Musím tabulku (je v enginu InnoDB) před tím nějak rozdělit, popř. jak?
Díky.
10. 4. 2017 18:06:49
https://webtrh.cz/diskuse/vyber-x-zaznamu-z-kazde-skupiny#reply1272553
Narazil jsem na dotaz, ze kterého mi jde hlava kolem a budu nad ním muset ještě přemýšlet. Ale funguje! :)
sql - Select top 10 records for each category - Stack Overflow
10. 4. 2017 18:11:37
https://webtrh.cz/diskuse/vyber-x-zaznamu-z-kazde-skupiny#reply1272552
crs
verified
rating uzivatele
(1 hodnocení)
11. 4. 2017 18:44:20
Napsal Martin Schlemmer;1378829
Narazil jsem na dotaz, ze kterého mi jde hlava kolem a budu nad ním muset ještě přemýšlet. Ale funguje! :)
Velmi zajímavé! Zkusil jsem to, ale omezení na 5 záznamů mi nefunguje :(
11. 4. 2017 18:44:20
https://webtrh.cz/diskuse/vyber-x-zaznamu-z-kazde-skupiny#reply1272551
Pro odpověď se přihlašte.
Přihlásit