Autor Zpráva
Ages
Profil
Zdravím,
Potřeboval bych poradit s výběrem dar z MySQL databáze mám tabulku:
CREATE TABLE `price_info` (
  `id` int(11) NOT NULL,
  `product_id` int(11) DEFAULT NULL,
  `date` date DEFAULT NULL,
  `price` float DEFAULT NULL,
  `shop` varchar(45) DEFAULT NULL
) ;
do které se mi každý den ukládají informace o cenách z několika obchodů a nyní bych potřeboval vybrat:
A) Pro product_id ke každému date 5 řádků s nejnižšími cenami
B) Pro všechny product_id to samé jako v příkladu A
Umím vybrat nejnižší cenu ke každému datumu, ale bohužel nevím jak dotaz rozšířit na více řádků.
Mohl by mi někdo, prosím, poradit jak na to?
Kajman
Profil
Pro mysql od verze 8 (nebo mariadb od verze 10.2) stačí omezit výsledek
A) ROW_NUMBER() OVER (PARTITION BY `product_id`, `date` ORDER BY `price`)
B) ROW_NUMBER() OVER (PARTITION BY `product_id` ORDER BY `price`)


Pro starší verze mysql lze vypočítat hranici (zde musíte pro price i id) a tou to omezit, viz
Některé časteji řešené dotazy pro MySQL - FAQ » Nalezení posledních pěti článků z každé kategorie
Ages
Profil
Kajman
Děkuji za rychlou odpověď - podařilo se mi to s tím vyřešit.

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