首先,如果我的问题没有正确组织,我会道歉。
我试图在Java中运行SQL查询以返回所有时差记录。所以要解释一下: 我有两张桌子。表A具有以下结构:
Table `A` (
`interaction_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`job_id` int(11) NOT NULL,
`task_id` varchar(250) NOT NULL,
`task_time` datetime DEFAULT NULL,
`task_assessment` float DEFAULT NULL,
)
Table `B` (
`task_id` varchar(250) NOT NULL,
`task_type` varchar(250) DEFAULT NULL,
`task_weight` float DEFAULT NULL,
`task_due` datetime DEFAULT NULL,
`Job_id` int(11) NOT NULL
)
我需要的是从表A获得计数(不同) - 我使用interaction_id
然后得到他们的时间 - 使用每个用户的task_time并使用"WHERE user_id='" + userId
(java参数)。
之后,我想使用Job_id
将表A与表B相关联
这样我就可以得到差异日期(以小时为单位,所以我使用了SELECT TIMEDIFF(小时,A(任务时间),B(任务))。
最后,我需要获得时差的平均值。
我认为在描述时它有点复杂。但是,我很感激您的高级帮助!
非常感谢
答案 0 :(得分:0)
此查询应收集您期望的结果:
select count(*) as countLines,
avg(time_to_sec(timediff(A.task_time, B.task_due)) / 3600)
from A
inner join B on A.job_id = B.job_id
where A.user_id = @userId