我有一个名为“Users”的字段,我想在该字段上运行 SUM() 以返回所有 DISTINCT 记录的总和。我认为这会起作用:
SELECT SUM(DISTINCT table_name.users)
FROM table_name
Run Code Online (Sandbox Code Playgroud)
但它没有选择 DISTINCT 记录,它只是像我运行 SUM(table_name.users) 一样运行。
我需要做什么才能仅添加该字段中的不同记录?
使用count()
SELECT count(DISTINCT table_name.users)
FROM table_name
Run Code Online (Sandbox Code Playgroud)
此代码似乎表明 sum(distinct ) 和 sum() 返回不同的值。
with t as (
select 1 as a
union all
select '1'
union all
select '2'
union all
select '4'
)
select sum(distinct a) as DistinctSum, sum(a) as allSum, count(distinct a) as distinctCount, count(a) as allCount from t
Run Code Online (Sandbox Code Playgroud)
你真的有非独特的价值观吗?
select count(1), users
from table_name
group by users
having count(1) > 1
Run Code Online (Sandbox Code Playgroud)
如果不是,则总和将相同。