2017-06-02 36 views
0

首先,如果我的問題沒有正確組織,我很抱歉。連接兩個表格並計算時間差異,計數,清晰度和平均值

我想在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 ,這樣我可以得到的區別日期(以小時,表B表的鏈接,所以我用SELECT TIMEDIFF(小時,A(task_time),B(task_due))。 最後,我需要得到時間差的平均值。

我相信,描述當它有點複雜,不過,我會非常感謝您先進幫助!

非常感謝您

+1

如果您向我們展示了來自兩個表格的最小樣本數據以及您期望的輸出,則可能會更有幫助,而不是發佈您的表格結構。 –

+0

Hi @TimBiegeleisen。我知道,問題是我將在下週訪問數據,但試圖考慮這個任務。 –

+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 
+0

謝謝。不需要使用Distinct? –

+0

如果表格之間存在1:1的關係,則不需要。 – xtoik