Erhalte Werte aus einer Spalte mit unterschiedlichen Werten in einem anderen

Ich versuche, Zeilen mit derselben Nummer zu finden, aber unterschiedlicher Wert, ich bin zu dieser Abfrage angekommen:

DECLARE @Table1 AS TABLE (Number INT, Value int ) INSERT @Table1 VALUES (32, 3) INSERT @Table1 VALUES (32, 5) INSERT @Table1 VALUES (45, 5) INSERT @Table1 VALUES (45, 5) SELECT DISTINCT Number, COUNT(Value) FROM @Table1 GROUP BY Number, Value HAVING COUNT(Value) < 2 

Ist das der beste Ansatz?

Verlangt die Abfrage die erwarteten Ergebnisse? Normalerweise sehe ich es so geschrieben:

 SELECT Number, COUNT(DISTINCT Value) FROM @Table1 GROUP BY Number HAVING COUNT(DISTINCT Value) < 2 

Oder, basierend auf deinem Kommentar unten, könntest du das tun:

 SELECT Number FROM @Table1 a WHERE EXISTS(SELECT * FROM @Table1 b WHERE a.Number=b.Number and a.Value<>b.Value) 
 SELECT Number, COUNT(distinct Value) as value FROM @Table1 GROUP BY Number 

Du könntest einen Verband benutzen.

Für einen Beitritt:

  SELECT t1.Number, t1.Value FROM @Table1 t1 JOIN @Table1 t2 ON t2.Number = t1.Number AND t2.Value <> t1.Value 

Das solltest du dich auf den path bringen. Sie können dies als Sub-Abfrage verwenden, wenn Sie mehr präsentierbare endgültige Ergebnis-Set haben wollen.