moin,
beides führt zum erfolg, wichtig ist, worüber du gruppierst. solltest zwar nur spalten ausgeben, über die du auch gruppiert hast oder eine aggregat-funktion verwenden. du kannst aber auch spalten bei der anzeige weglassen (nicht in der gruppierung).
Ilja
Hallo Ilja,
das heißt, dass das Statement:
SELECT Spalte,Spalte2, Spalte3 COUNT(*) AS zaehler
FROM tabelle
GROUP BY Spalte, Spalte2, Spalte3
HAVING zaehler > 1
ORDER BY zaehler DESC
wirklich nur die Datensätze ausgibt, die in Spalte, Spalte2 und Spalte3 identisch sind?
Darf ich Dir in diesem Zusammenhang 2 weitere Fragen stellen?
Ich mach mal, ich hoffe, ich überstrapaziere Deine Hilfsbereitschaft noch nicht.
Frage 1:
Wenn das Statement von oben wirklich die Datensätze ausgibt, die in Spalte, Spalte2 und Spalte3 identisch sind, könnte ich dann obige Query so ergänzen, dass nur die Datensätze in die Ergebnissmenge einfließen, die in Spalte, Spalte2 und Spalte3 idetisch sind, aber zusätzlich in spalte 4 NICHT identisch sind?
Frage2:
Kann ich das Statement:
SELECT Spalte COUNT(*) AS zaehler
FROM tabelle
GROUP BY Spalte
HAVING zaehler > 1
ORDER BY zaehler DESC
so ergänzen, dass in den Ergebnisszeilen nicht nur einfach die Mehrfacheinträge aufgeführt werden, sonden auch 2-3 Zusätzliche Spalten zu jedem Mehrfacheintrag?
Vielleicht mit einer Subquery?
select Spalte, Spalte1, Spalte2
from tabelle
where Spalte IN (
SELECT COUNT(Spalte) AS zaehler
FROM tabelle
GROUP BY Spalte
HAVING zaehler > 1
ORDER BY zaehler DESC
)
Naja, so gehts jedenfalls anscheinend nicht. Meine DB arbeitet, aber ich glaube, ich habe sie gerade in sowas wie ne Endlosschleife getrieben? Sie reagiert jedenfalls nicht mehr auf diese Query.
Viele Grüße, Thomas