Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [MySQL] Grupowanie i limit - limit dla każdego wyniku z grupowania?
alekto
post
Post #1





Grupa: Zarejestrowani
Postów: 17
Pomógł: 0
Dołączył: 10.06.2013

Ostrzeżenie: (0%)
-----


Hej,

Mam z pozoru proste zapytanie, które wyszukuje mi najpopularniejsze (najliczniej sprzedane) produkty w bazie według kategorii. Potrzebuję nazwę produktu, jego cenę, nazwę kategorii do której należy:

  1. SELECT s.nazwa,count(*), s.cena
  2. FROM sprzedane s
  3. WHERE s.kategoria IN ('owoce', 'warzywa', 'przetwory')
  4. GROUP BY s.kategoria, s.nazwa
  5. ORDER BY s.kategoria, count(*) DESC


teraz jeśli dopiszę
limit 10

pokaże mi 10 najpopularniejszych produktów 'w ogóle'.

A jeśli chcę uzyskać wynik 10 produktów dla każdego grupowania według kategorii? Czyli chcę zobaczyć 10 najpopularniejszych owoców, 10 najp. warzyw i 10 najp. przetworów w sklepie.

Mam poczucie, że idę do tego trochę naokoło. Czy macie jakąś podpowiedź? wink.gif

Ten post edytował alekto 30.07.2013, 17:39:55
Go to the top of the page
+Quote Post
MadMark
post
Post #2





Grupa: Zarejestrowani
Postów: 105
Pomógł: 3
Dołączył: 12.07.2010

Ostrzeżenie: (0%)
-----


Nie pozostaje Ci nic innego, jak rozbić to na 3 podzapytania (przez to in w klauzuli where).
  1. SELECT nazwa,ilosc,cena FROM
  2. (SELECT nazwa,count(*) AS ilosc,cena WHERE kategoria ='warzywa' LIMIT 10) AS warzywa,
  3. (SELECT nazwa,count(*) AS ilosc,cena WHERE kategoria ='owoce' LIMIT 10) AS owoce,
  4. (SELECT nazwa,count(*) AS ilosc,cena WHERE kategoria ='przetwory' LIMIT 10) AS przetwory
  5. GROUP BY kategoria, nazwa
  6. ORDER BY kategoria, ilosc DESC;
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 11:34