![]() |
AW: Suchfunktion mit "Gruppierung"
Zitat:
Wenn Matze also anfängt komplexes Reporting zu implementieren wird er früher oder später an die Grenzen von mySQL kommen, und DBMS-unabhängig gehen dann nur duplizierte SQLs wie du sie gezeigt hast. Das kann natürlich absolut in Ordnung sein, solange man nicht die halbe Logik der Abfrage 5-mal kopieren muss. Oder plötzlich 300 Zeilen SQL an mySQL schickt... Denn wehe demjenigen, der bei einer Anpassung die 4 Duplikate nicht mit anpasst. |
AW: Suchfunktion mit "Gruppierung"
Ich habs mal in mySql versucht.
Wirklich gruppiert wird ja in meinem oracle sql nicht. Man muss nur Gruppen zählen. Das geht mit mySql mit Variablen. Ist wieder nicht allgemein, dafür mySQL. Die Suchgeschichte und das drumrum hab ich mal weggelassen.
Code:
mysql> select
-> if (@cat = f_cat_id, @rn := @rn + 1, @rn := 1) rownum, -> (@cat := f_cat_id) f_cat_id, -> e.Id, f_hits, f_Status_id -> from -> (select * from tab_entries -> order by id, f_cat_id, f_hits desc ) e, -> (select (@cat := 0)) as x -> ; +--------+----------+------+--------+-------------+ | rownum | f_cat_id | Id | f_hits | f_Status_id | +--------+----------+------+--------+-------------+ | 1 | 1 | 1 | 20 | 1 | | 2 | 1 | 1 | 13 | 2 | | 3 | 1 | 1 | 12 | 1 | | 1 | 2 | 1 | 5 | 2 | | 1 | 3 | 1 | 11 | 2 | | 2 | 3 | 1 | 9 | 2 | | 1 | 4 | 1 | 33 | 2 | | 2 | 4 | 1 | 13 | 2 | | 3 | 4 | 1 | 12 | 1 | | 1 | 3 | 2 | 22 | 1 | | 2 | 3 | 2 | 9 | 2 | +--------+----------+------+--------+-------------+ 11 rows in set (0.00 sec) mysql> mysql> select * from ( -> select -> if (@cat = f_cat_id, @rn := @rn + 1, @rn := 1) rownum, -> (@cat := f_cat_id) f_cat_id, -> e.Id, f_hits, f_Status_id -> from -> (select * from tab_entries -> order by id, f_cat_id, f_hits desc ) e, -> (select (@cat := 0)) as x -> ) o -> where o.rownum<3; +--------+----------+------+--------+-------------+ | rownum | f_cat_id | Id | f_hits | f_Status_id | +--------+----------+------+--------+-------------+ | 1 | 1 | 1 | 20 | 1 | | 2 | 1 | 1 | 13 | 2 | | 1 | 2 | 1 | 5 | 2 | | 1 | 3 | 1 | 11 | 2 | | 2 | 3 | 1 | 9 | 2 | | 1 | 4 | 1 | 33 | 2 | | 2 | 4 | 1 | 13 | 2 | | 1 | 3 | 2 | 22 | 1 | | 2 | 3 | 2 | 9 | 2 | +--------+----------+------+--------+-------------+ 9 rows in set (0.00 sec) mysql> |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:52 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz