Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

По-висок резултат от заявката с ключовата дума DISTINCT?

Технически това не е отговор, но тъй като отделих време да го анализирам, може и да го публикувам (въпреки че има риск да бъда гласувано против).

Нямаше начин да възпроизведа описаното поведение.

Това е сценарият:

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)

Ето някои заявки и техните резултати:

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)

И нещо интересно:

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)

Намирам за много странно, че можете да изпълнявате заявките точно както сте описали. Ще трябва да ни уведомите структурата на таблицата и данните, за да получите допълнителна помощ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Добавете номер на ред към набор от резултати на SQL заявка

  2. Извличане на varbinary(MAX) от SQL Server до byte[] в C#

  3. Сравнете DATETIME и DATE, пренебрегвайки частта от времето

  4. Функция с стойност на таблица с множество изрази срещу функция с стойност на вградена таблица

  5. Създайте изглед в SQL Server 2017