Về mặt kỹ thuật, đây không phải là một câu trả lời, nhưng vì tôi đã dành thời gian để phân tích điều này, nên tôi cũng có thể đăng nó (mặc dù tôi có nguy cơ bị bỏ phiếu thấp).
Không có cách nào tôi có thể tái tạo hành vi được mô tả.
Đây là tình huống:
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)
Và đây là một số truy vấn và kết quả của chúng:
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)
Và điều gì đó thú vị:
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)
Tôi thấy rất kỳ lạ khi bạn có thể chạy các truy vấn chính xác như cách bạn đã mô tả. Bạn phải cho chúng tôi biết cấu trúc bảng và dữ liệu để được trợ giúp thêm.