我有一个查询,它给了我一个星期内在表中有活动的用户的总计数。它看起来像这样。
select count(distinct(t.employeeid)) as "User Count"
from t, g
where t.eventdate between '07-SEP-13' AND '14-SEP-13'
and t.resourceid=g.id and g.resourcename = 'XYZ'`
我想知道在同一时间段内每天都有活动的用户数量。所以我修改了这样的查询。
select count(distinct(t.employeeid)) as "User Count", EXTRACT(DAY from t.eventdate) as "Day"
from t, g
where t.eventdate between '07-SEP-13' AND '14-SEP-13'
and t.resourceid=g.id and g.resourcename = 'XYZ'
group by EXTRACT(DAY from t.eventdate)
order by EXTRACT(DAY from t.eventdate) ASC;`
但是我在总数上有所不同。第二个查询比第一个查询多出80%。有人可以让我知道出了什么问题以及哪个查询有问题?提前谢谢。
答案 0 :(得分:1)
看起来你正在计算第二个员工事件和第一个员工事件。
员工将被计算在一天中有多次活动。
答案 1 :(得分:1)
您正在计算明显的empoyeeid,并且您必须拥有具有多个eventdate的员工。在您的第一个查询中,他们将被视为一个人,但在您的第二个查询中,他们将被计为每个事件日期一个人。