Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL总和除以日期计数_Sql_Sql Server_Tsql - Fatal编程技术网

SQL总和除以日期计数

SQL总和除以日期计数,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

我有表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    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/等等)。没有人知道正确的答案。:-)一气呵成