首先,对于我的问题没有正确组织,我深表歉意。
我试图在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中获取count(distinct)-然后使用
interaction_id
然后获取他们的时间-为每个用户使用task_time,我使用
"WHERE user_id='" + userId
(一个Java参数)。之后,我想使用
Job_id
将表A与表B链接这样我就可以得到不同的日期(以小时为单位,所以我使用了SELECT TIMEDIFF(Hour,A(task_time),B(task_due)))。
最后,我需要获取时差的平均值。
我认为描述时有点复杂。但是,感谢您的高级帮助!
非常感谢你
最佳答案
此查询应收集您期望的结果:
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