2016-06-16 7 views
-4

私はSQLクエリを作成する必要があります。だから、私はデータlinkとあなたのためのSQLフィドルを作成します。すべてのタグが0SQLクエリを作成するには?

結果がでなければなりませんINSIDE ==を持っ== 1と日付の内部で処理の日付の差の合計を持っていなければならないところ、私はタグによってグループレコードに必要

CREATE TABLE `passages_table` (
`ID` INT(11) NOT NULL AUTO_INCREMENT, 
`INSIDE` TINYINT(4) NOT NULL DEFAULT '0', 
`TAG` CHAR(50) NOT NULL DEFAULT '0', 
`DATE` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP, 
PRIMARY KEY (`ID`) 

(例) TAG | INTERVAL(分)
"---" 40
"---" | 1450

enter image description here

+0

と何が –

+0

を試してみました、私は違い –

+0

のMySQLの合計を取得する方法を理解していない日数http://www.w3schools.com/sql/の差異を計算する機能を有していますfunc_datediff_mysql.asp –

答えて

0

ここで私はペアを取得するには、同じタグで大きい最小のIDを探すために、ここで関係を追加し、= 0

の内側にあなたがそれらをペアリングする方法を私の試みは正確にわからないんですT1とT2を結合し、条件は以下のクエリで確認できます。

SELECT TAG,SUM(secs_diff)/60 as `INTERVAL` 
FROM 
    (SELECT T1.INSIDE,T1.TAG,T1.DATE, 
     T2.INSIDE INSIDE2,T2.TAG TAG2,T2.DATE DATE2, 
     TIME_TO_SEC(T2.DATE) - TIME_TO_SEC(T1.DATE) as secs_diff   
    FROM passages_table T1 
    INNER JOIN passages_table T2 ON 
    T1.TAG = T2.TAG AND T1.INSIDE = 1 AND T2.INSIDE = 0 
    AND T2.ID > T1.ID 
    WHERE NOT EXISTS (SELECT 1 FROM passages_table T3 
        WHERE T3.ID > T1.ID AND T3.ID < T2.ID AND T3.TAG = T1.TAG) 
)T 
GROUP BY TAG 

http://sqlfiddle.com/#!9/b82e09/10

関連する問題