sql >> Database teknologi >  >> RDS >> Sqlserver

Højere forespørgselsresultat med DISTINCT søgeordet?

Dette er teknisk set ikke et svar, men da jeg tog mig tid til at analysere dette, kunne jeg lige så godt poste det (selvom jeg har risiko for at blive nedstemt).

Der var ingen måde, jeg kunne gengive den beskrevne adfærd.

Dette er scenariet:

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)
 

Og her er nogle forespørgsler og deres resultater:

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)

Og noget interessant:

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)
 

Jeg finder det meget mærkeligt, at du er i stand til at køre forespørgslerne præcis, som du beskrev. Du skal fortælle os tabelstrukturen og dataene for at få yderligere hjælp.



  1. Find om en kolonne i Oracle har en sekvens

  2. Google-diagramtidslinje med dato i x-aksen

  3. Hvordan vælger man mysql række-id til WHERE-klausulen på UPDATE, INSERT, DELETE via php?

  4. MySQL Limit med mange til mange forhold