2

Tracking という名前の次のテーブルがあります。

ID_path -- step_start -- step_end -- time  
  1         A             B      10  
  1         B             C      20  
  1         C             D      30  
  2         A             C      100  
  3         D             C      20  
  3         A             N      300

パスACの累積値を抽出できるMysqlで単一のクエリを探しているので、それ自体とすべてが内側にステップインします:[AC] + [AB] + [BC]。

(step_start = 'A' または step_end = 'C') および ID_path = ID_path の追跡から sum(time) を選択します

step の値が start と end の両方にはならないことを考慮してこのクエリを考えましたが、同じ id_path を持つレコードのみを抽出するための最後の条件 (ID_path = ID_path) の表現方法がわかりません。特定の SQL 関数はありますか?

ご協力ありがとうございます / mysql コーディング ガイドライン / アドバイス

4

2 に答える 2

1

あなたはこれを行うことができます:

Select ID_path,sum(time)
from tracking 
where (step_start = 'A' or step_end = 'C')
group by ID_path 


SQL フィドルのデモ

于 2012-11-15T07:35:31.457 に答える
0

あなたが何を求めているのか正確にはわかりませんが、これがそれだと思います:

SELECT id_path, sum(time) total
WHERE step_start = 'A' OR step_end = 'C'
GROUP BY id_path
于 2012-11-15T07:35:59.813 に答える