none
Nur doppelte Werte anzeigen RRS feed

  • Frage

  • Hallo,

    zu Kontrollzwecken möchte ich eine SQL Tabelle auf doppelte Werte überprüfen und nur diese in einer neuen Tabelle ausgeben lassen.

    Ich habe bereits einen älternen Beitrag dazu hier im Forum gefunden und versucht, diesen Lösungsansatz auf meine Daten anzupassen:

     

    WITH doppelte AS
        (SELECT    
             COUNT(ADRESS_BEZ) AS Anzahl,
                  ADRESS_BEZ
          FROM          ADRESSVERBIND_join)

        SELECT    
             Anzahl, ADRESS_BEZ
         FROM         doppelte AS doppelte_1

         GROUP BY Anzahl, ADRESS_BEZ
         HAVING      (Anzahl > 1)
         ORDER BY ADRESS_BEZ

    Jedoch erhalte ich bei diesem Syntax eine SQL Fehlermeldung im SSIS Abfrageeditor, das GROUP und ORDER nicht richtig gesetzt sind.

    Kann mir bitte jemand beim richctigen Syntax helfen? Besten Dank!

     

    Gruß, Jürgen

    Dienstag, 16. August 2011 11:24

Antworten

  • Du hast das Group by in der CTE nicht gesetzt.

    WITH doppelte AS
        (SELECT    
             COUNT(*) AS Anzahl,
                  ADRESS_BEZ
          FROM          ADRESSVERBIND_join
           GROUP BY ADRESS_BEZ)

        SELECT    
             Anzahl, ADRESS_BEZ
         FROM         doppelte AS doppelte_1

         GROUP BY Anzahl, ADRESS_BEZ
         HAVING      (Anzahl > 1)
         ORDER BY ADRESS_BEZ

     

    Es müßte auch so gehen:

    ;with cte as
    (
    select ADRESS_BEZ, row_number() over (partition by ADRESS_BEZ order by ADRESS_BEZ) as rn
    )

    select * from cte where rn > 1

    Falls nicht, poste doch bitte mal DDL, Beispieldaten und erwartetes Ergebnis.

    • Als Antwort markiert juergen_ks Dienstag, 16. August 2011 12:05
    Dienstag, 16. August 2011 11:36