2

我有下表称为跟踪:

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

我在 Mysql 中寻找可以提取路径 AC 的累积值的单个查询,因此它本身和所有步骤都进入:[AC] + [AB] + [BC]。

从跟踪中选择 sum(time) where (step_start = 'A' or step_end = 'C') and ID_path = ID_path

我认为这个查询考虑到 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 回答