Thomas E.: mysql5: Query

Beitrag lesen

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