Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Höheres Abfrageergebnis mit dem DISTINCT-Schlüsselwort?

Dies ist technisch gesehen keine Antwort, aber da ich mir die Zeit genommen habe, dies zu analysieren, kann ich es genauso gut posten (obwohl ich das Risiko habe, abgelehnt zu werden).

Ich konnte das beschriebene Verhalten auf keinen Fall reproduzieren.

Dies ist das Szenario:

declare @table table ([user id] int)

insert into @table values 
(1),(1),(1),(1),(1),(1),(1),(2),(2),(2),(2),(2),(2),(null),(null)

Und hier sind einige Abfragen und ihre Ergebnisse:

SELECT COUNT(User ID) FROM @table --error: this does not run
SELECT COUNT(dsitinct User ID) FROM @table --error: this does not run
SELECT COUNT([User ID]) FROM @table --result: 13 (nulls not counted)
SELECT COUNT(distinct [User ID]) FROM @table --result: 2 (nulls not counted)

Und etwas Interessantes:

SELECT user --result: 'dbo' in my sandbox DB
SELECT count(user) from @table --result: 15 (nulls are counted because user value
                                             is not null)
SELECT count(distinct user) from @table --result: 1 (user is the same  
                                                     value always)

Ich finde es sehr seltsam, dass Sie die Abfragen genau so ausführen können, wie Sie es beschrieben haben. Sie müssen uns die Tabellenstruktur und die Daten mitteilen, um weitere Hilfe zu erhalten.