Richi: Doppelte Einträge zweier Spalten finden

Hi,

was muss ich an

  
SELECT `name` , `zuname` , COUNT( * ) AS Anzahl  
FROM tab  
GROUP BY name  
HAVING COUNT( * ) >1  

ändern, um nur die User zu finden, bei denen name und zuname identisch sind?

Grüße, Richard

  1. Hi!

    was muss ich an

    SELECT name , zuname , COUNT( * ) AS Anzahl

    FROM tab
    GROUP BY name
    HAVING COUNT( * ) >1

    
    >   
    > ändern, um nur die User zu finden, bei denen name und zuname identisch sind?  
      
      SELECT ... FROM ... WHERE name = zuname  
      
    Aber das wirst du nicht gemeint haben. Du willst vermutlich Datensätze haben, deren name und zuname in der Kombination auch in anderen Datensätzen vorkommt. Erweitere GROUP BY um zuname.  
      
      
    Lo!
    
    1. Aber das wirst du nicht gemeint haben. Du willst vermutlich Datensätze haben, deren name und zuname in der Kombination auch in anderen Datensätzen vorkommt. Erweitere GROUP BY um zuname.

      Hi dedlfix,

      bezieht sich denn HAVING immer auf GROUP BY?

      Grüße, Richard

      1. Hi!

        bezieht sich denn HAVING immer auf GROUP BY?

        Jein, HAVING ist eine Art zweites WHERE. Allerdings kann HAVING in einigen DBMS nicht ohne GROUP BY verwendet werden. Speziell wenn man GROUP BY verwendet, kann man im WHERE nicht alle Bedingungen aufführen, denn WHERE arbeitet vor der Gruppierung und einige Daten, wie zum Beispiel die Anzahl je Gruppe, stehen erst nach der Gruppierung zur Verfügung. Und dann kommt HAVING zum Einsatz und kann an der gruppierten Menge noch weiter filtern.

        Lo!