...nur einige Artikel aus einer Warengruppe finden

Werbung:
Ich versuche es auf diesem Wege, geht aber nicht

(SELECT * FROM (SELECT *, @art_rank := IF(@current_art = Art_id, @art_rank + 1, 1) AS art_rank, @current_art := Art_art_id FROM artikel
ORDER BY Art_id DESC) ranked WHERE art_rank <= 5
 
5.7 ist zu alt, das geht IMHO erst ab 8.

Code:
test=*# select * from (select *, row_number() over(partition by h1 order by u1) from edewolf) as foo where row_number <= 5;
 h1 | u1 |    name     | row_number
----+----+-------------+------------
  1 |  1 | Produkt 1 1 |          1
  1 |  2 | Produkt 1 2 |          2
  1 |  3 | Produkt 1 3 |          3
  1 |  4 | Produkt 1 4 |          4
...

test=*# select version();
                                                                version                                                                 
----------------------------------------------------------------------------------------------------------------------------------------
 PostgreSQL 13beta1 (Ubuntu 13~beta1-1.pgdg18.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 7.5.0-3ubuntu1~18.04) 7.5.0, 64-bit
(1 row)

PG kann das aber seit 8.4, also so seit 2009.
 
Bin sehr glücklich mit meinem Provider mit 365/24 Tel-Service.
Gebe den Ehrgeiz auf einen eleganten Query zu finden, mache es über einen kleinen PHP-Script.
Danke für die Mühe :))))
 
Werbung:
Bin sehr glücklich mit meinem Provider mit 365/24 Tel-Service.
Nun ja. Ich hab mal in der Branche gearbeitet. Wir hatten auch PG im SharedHosting.

Gebe den Ehrgeiz auf einen eleganten Query zu finden, mache es über einen kleinen PHP-Script.
Danke für die Mühe :))))

Einmal alle Hauptgruppen einsammeln und dann die Top5 davon je Untergruppe abfragen. Geht, ist aber die absolut schlechteste und teuerste aller Varianten. Viel Erfolg!
 
Zurück
Oben