我正在尝试编写SQL查询以生成给定时间段内给定用户执行的操作的摘要行.我有以下相关的表结构:
用户
audit_periods(可以处理,运输,休息等)
audit_tasks
audit_task_types

对于给定时期内的每个用户,我想创建类似以下数据行的内容:
users.id users.email time_spent_processing time_spent_shipping ... number_of_scans number_of_pallets
这将通过计算每个用户来计算:
我已经筋疲力尽了所有我知道的SQL技巧(并不多),并提出了类似以下的内容:
select
u.id as user_id,
u.email as email,
u.team as team,
ap.period_type as period_type,
att.name,
time_to_sec(
timediff(least("2011-03-17 00:00:00", ifnull(ap.finished_at, utc_timestamp())), greatest("2011-03-16 00:00:00", ap.started_at))
) as period_duration,
sum(at.score) as period_score
from audit_periods as ap
inner join users as u on ap.user_id = u.id
left join audit_tasks …Run Code Online (Sandbox Code Playgroud)