SQL使用总和(天)

SQL使用总和(天),sql,Sql,我的问题是关于使用函数sum(days)并在查询中重用它 select new_client, sum(days) as effort from actuals where week >='01/01/2016' and type is null and sum(days) = 0 group by new_client order by effort desc 我知道这行不通。我想知道人们会怎么做上述的事情 select new_client, sum(days)

我的问题是关于使用函数sum(days)并在查询中重用它

select
  new_client, 
  sum(days) as effort
from actuals
where week >='01/01/2016' 
  and type is null 
  and sum(days) = 0
group by new_client
order by effort desc
我知道这行不通。我想知道人们会怎么做上述的事情

select new_client, sum(days) as effort
from actuals
where week >='01/01/2016' and type is null                          
group by new_client
having sum(days) = 0
order by effort desc
像这样的东西应该有用吗?不能在where子句中使用SUM()。这就是为什么有人存在

问题是为什么要在select then中显示该总和(天),因为如果有结果,它将始终显示0

像这样的东西应该有用吗?不能在where子句中使用SUM()。这就是为什么有人存在


问题是为什么您希望在select then中显示该总和(天),因为如果有结果,它将始终显示为0。

如果
从不为负,您还可以执行以下操作:

select new_client, sum(days) as effort
from actuals
where week >= '2016-01-01' and type is null and days > 0
group by new_client
order by effort desc;

这更有效,因为它在聚合之前进行过滤。但是@Jens的答案更一般。

如果
days
从不为负值,您也可以这样做:

select new_client, sum(days) as effort
from actuals
where week >= '2016-01-01' and type is null and days > 0
group by new_client
order by effort desc;

这更有效,因为它在聚合之前进行过滤。但是@Jens的答案更一般。


您好,
非常好的问题
您可以使用下面的查询

select new_client, sum(days) as effort
from actuals
where week >='01/01/2016' and type is null
group by new_client
having  sum(days) = 0
order by effort desc
解释


WHERE子句执行当前条件,而HAVE子句在所有条件执行后执行。i、 e.对条件的结果执行,并逐行执行或处理数据。以一种简单的方式,WHERE子句是前置过滤器,HAVING子句是后置过滤器。您好,
非常好的问题
您可以使用下面的查询

select new_client, sum(days) as effort
from actuals
where week >='01/01/2016' and type is null
group by new_client
having  sum(days) = 0
order by effort desc
解释


WHERE子句执行当前条件,而HAVE子句在所有条件执行后执行。i、 e.对条件的结果执行,并逐行执行或处理数据。以一种简单的方式,WHERE子句是预筛选,HAVING子句是后筛选,向我们展示一些示例表数据,以及预期结果(格式化文本)重复使用是什么意思?在天字段中是什么?同时标记您正在使用的相关DBMS在WHERE子句中不使用此项,使用HAVING SUM(天)=0向我们展示一些示例表数据,预期结果(格式化文本)重用是什么意思?在天字段中是什么?还要标记您正在使用的相关DBMS,而不是在where子句中使用它,使用HAVING SUM(days)=0谢谢jens。即使我想问你这个问题,你还是成功了。谢谢你,简。即使是在我试图问你的问题时,你还是成功了。