1

1 週間にテーブルでアクティビティを行ったユーザーの個別の合計数を取得するクエリがあります。このように見えます。

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;`

しかし、私は合計数に違いがあります。2 番目のクエリでは、1 番目のクエリよりも約 80% 多い結果が得られます。何が問題なのか、どのクエリに問題があるのか​​教えてください。前もって感謝します。

4

2 に答える 2

1

2 番目に従業員イベントの数を取得し、1 番目に従業員の数を取得しているようです。

従業員は、1 日にイベントが発生した回数だけカウントされます。

于 2013-10-15T20:09:44.273 に答える
1

個別の従業員 ID をカウントしており、複数のイベント日付を持つ従業員 ID が必要です。最初のクエリでは 1 人としてカウントされますが、2 番目のクエリではイベント日付ごとに 1 人としてカウントされます。

于 2013-10-15T20:10:02.310 に答える