假设我有一个名为VISITS的下表:
我需要计算每个位置的总记录,然后对Date1
和Date2
值相等的那些记录进行单独计数。最终结果应如下所示:
我可以使用以下方法获得总数:
从“按位置分组的访问”中选择“位置,计数(*)”作为“总访问次数”
通过这样做,我可以获得匹配的访问次数
从访问中选择位置,将计数(*)设为“总匹配” 其中Date1 = Date2按位置分组
但是我不知道如何通过一个查询来完成这两项工作。
答案 0 :(得分:3)
使用条件聚合:
select v.Location, Count(*),
sum(case when v.date1 = v.date2 then 1 else 0 end) as same_day
from Visits v
group by v.location;
请注意,您的查询缺少group by
子句。
答案 1 :(得分:0)
一种简单的方法可能是
select Location, Count(*), sum(case when Date1 = Date2 then 1 else 0 end)
from Visits
group by location