SQL总和除以日期计数
我有表1SQL总和除以日期计数,sql,sql-server,tsql,Sql,Sql Server,Tsql,我有表1 date name item 2021-01-01 Joe 1 2021-01-01 Joe 1 2020-01-03 Ray 1 2020-01-03 Ray 2 2020-01-03 Ray 3 我的目标是按名称、日期和项目总数分组,将分组数除以多少个日期 Joe count date=2除以2(总和项目) 射线计数日期=3除以6(总和项目) 结果是这样的 date name
date name item
2021-01-01 Joe 1
2021-01-01 Joe 1
2020-01-03 Ray 1
2020-01-03 Ray 2
2020-01-03 Ray 3
我的目标是按名称、日期和项目总数分组,将分组数除以多少个日期Joe count date=2除以2(总和项目)
射线计数日期=3除以6(总和项目)
结果是这样的
date name item
2021-01-01 Joe 1
2020-01-03 Ray .5
我的问题
select cast(count(date) as numeric) / count(item) from table1 group by date
结果不正确假设您想要一天-人组合的不同天数总数与发生次数之比
select date, name, (select cast(count(distinct date) as decimal) from table_1) / count(item) from table_1 group by date, name
或者,如果您希望分母是组中的其他聚合(如您对问题的评论中所述),只需将
计数(项)
更改为我建议使用单个聚合查询:
select date, name, count(*) / sum(item)
from t
group by date, name;
或者更简单地说:
select date, name, 1 / avg(item)
from t
group by date, name;
请做一些研究,试一试,并向我们展示您的尝试。请解释6/3=0.66的原因?错误。如果不需要计数(日期)/求和(项目)子查询,则可能更简单-@user14717238-第二行的预期值为0.66,而不是0.5等一分钟。雷:假设除以3天,而不是2天。我认为我们不能使用不同的日期。@qphan可能会更新问题,以包括Ray和Joe的公式(例如Joe=Joe的行数,date=2021-01-01/等等)。没有人知道正确的答案。:-)一气呵成