连接两个表并具有计数,不同和平均时差

时间:2017-06-02 08:41:44

标签: mysql sql

首先,如果我的问题没有正确组织,我会道歉。

我试图在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(任务))。   最后,我需要获得时差的平均值。

我认为在描述时它有点复杂。但是,我很感激您的高级帮助!

非常感谢

1 个答案:

答案 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