1

次の列を含むテーブルがあるとします。 たとえば、テーブルにこれらのデータがある場合、一定期間の労働時間の平均を取得するにはどうすればよいですかEmployeeID, PayEntity, HourWorked, DatePayEntity can be 1:Normal, 2:OverTime, etc

1, 1, 40, 7/25/12
1, 2, 5, 7/25/12
2, 1, 30, 7/25/12

この日の平均は(40+5)+30/2 -- 37.5

4

2 に答える 2

3

各従業員の 1 日あたりの合計時間を求める副選択と、1 日あたりの平均を計算する外部選択を使用してみてください。

SELECT Date, AVG(HourWorked) AS HourWorked
FROM 
(
    SELECT Date, SUM(HourWorked) AS HourWorked
    FROM yourtable
    GROUP BY EmployeeId, Date
) T1
GROUP BY Date

オンラインで動作することを確認してください: sqlfiddle

于 2012-07-25T23:47:22.930 に答える
0

同じ線に沿って、しかしAVG機能があることを知りませんでした

SELECT employee_id, total_hours, days, total_hours/days as average, 
FROM (
    SELECT employee_id, SUM(hours) as total_hours, COUNT(date) as days FROM `employee_hours_table` GROUP BY `employee_id`
) data
于 2012-07-25T23:56:51.273 に答える