![]() |
Datenbank: oracle • Version: egal • Zugriff über: egal
Verständnisfrage: HAVING mit Group by oder nicht?
Hallo zusammen
um Doppeleinträge im weitesten Sinne zu finden, nutze ich immer wieder folgenden Subselect
SQL-Code:
Das funktioniert ganz in meinem Sinne. Jetz sind mir (lauffähige) Sourcen über den Weg gelaufen, in denen das
select id
from Tabelle having Count(*)>1 group by id
SQL-Code:
fehlt.
Group by
Entsprechende Änderungen in obigen Schnipsel ziehen promt ein "ORA-00937: not a single-group group function" nach sich. Die Oracle Hilfe "The HAVING clause of SELECT statements is unaffected by the use of GROUP BY." bringt mir da auch keine Klarheit. Unter welchen Umständen ist denn was richtig? Gruß K-H |
AW: Verständnisfrage: HAVING mit Group by oder nicht?
für den Filterung ohne (vor) "group by" wird das where-Konstrukt verwendet
für die Filterung nach der Gruppierung wird das having-Konstrukt verwendet. D.h. ohne "group by" auch kein "having" |
AW: Verständnisfrage: HAVING mit Group by oder nicht?
Zitat:
Grund: a) ich habe ein "Group by" übersehen, b) es gibt irgendwo ein implizites "Group by" c) ???? Gruß K-H |
AW: Verständnisfrage: HAVING mit Group by oder nicht?
Also dass das HAVING vor dem GROUP BY kommt, finde ich auch schon sehr seltsam. HAVING kommt normalerweise immer nach dem GROUP BY. Denn es wird zuerst der komplette SELECT gemacht und auf das Ergebnis dann das HAVING angewendet.
|
AW: Verständnisfrage: HAVING mit Group by oder nicht?
Bei Oracle ist mir vor Jahren mal ein View um die Ohren geflogen, als ich von 9 auf 10 umgestellt habe. Die Group By Anweisung im "Original" war tatsächlich falsch, lief aber immer klaglos.
Ich würde mich da nicht am Bestand orientieren, sondern an den aktuellen SQL Standards bzw. der zugehörigen Dokumentation der verwendeten Oracle Version. Die dürfte da keine Unklarheiten lassen. 1 group by 2 having Vielleicht gibt es Sonderfälle, wo aufgrund der Select Clause (nur Aggregate) kein Group by notwendig ist und dann ein having kommen kann. P.S.: Gerade nachgeschaut, die Reihenfolge bei Oracle ist offiziell egal. Surprise! Dann würde ich dennoch dem allgemeinen Standard folgen. |
AW: Verständnisfrage: HAVING mit Group by oder nicht?
Zitat:
Das etwas bei Oracle funktionierte heißt nicht das das SQL-Statement auch fehlerfrei ist. |
AW: Verständnisfrage: HAVING mit Group by oder nicht?
Zitat:
Was das SQL Statement mit Group By / Having angeht, habe ich ja nachgetragen, dass es gemäß Doku in beliebiger Reihenfolge eingesetzt werden kann. Also schlicht und ergreifend dokumentiertes Verhalten. |
AW: Verständnisfrage: HAVING mit Group by oder nicht?
Zitat:
|
AW: Verständnisfrage: HAVING mit Group by oder nicht?
Zitat:
Ich kann mir nicht vorstellen, dass eine Oracle Datenbank mit eigenen Netzwerktreibern kommt. Meinst Du vielleicht deren Linux Red Had Distribution? (Anmerkung: Oracle ist ein Firmenname, diese Firma bietet vorsichtig geschätzt hunderte Produkte an.) Außerdem würde ich in solch einem Fall nicht davon sprechen, dass das Netzwerk lahmgelegt ist, sondern der Zugriff auf den Server - wenn ich das nun richtig verstanden habe. (Falls es der einzige Server im Netz war, hat es sich vielleicht anders angefühlt) Ich frag mich, wem Deine nebulösen Aussagen etwas bringen sollen, zumal Du ja mit der Materie vertraut bist. |
AW: Verständnisfrage: HAVING mit Group by oder nicht?
[OT]
Zitat:
Zitat:
Ich hab mir gestern Abend nochmal meine Beispielsourcen heraus gesucht, es handelte sich um einen "Einspalter", da ist das "Group by" ja nicht notwendig. Vielen Dank K-H |
AW: Verständnisfrage: HAVING mit Group by oder nicht?
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:01 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 by Thomas Breitkreuz