由于SQL查询中的分组,输出的差异

时间:2013-10-15 20:04:27

标签: sql oracle group-by sql-order-by

我有一个查询,它给了我一个星期内在表中有活动的用户的总计数。它看起来像这样。

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%。有人可以让我知道出了什么问题以及哪个查询有问题?提前谢谢。

2 个答案:

答案 0 :(得分:1)

看起来你正在计算第二个员工事件和第一个员工事件。

员工将被计算在一天中有多次活动。

答案 1 :(得分:1)

您正在计算明显的empoyeeid,并且您必须拥有具有多个eventdate的员工。在您的第一个查询中,他们将被视为一个人,但在您的第二个查询中,他们将被计为每个事件日期一个人。