mysql - SQL - 选择关联记录

标签 mysql sql select conditional-statements

我有下表称为跟踪:

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 中寻找可以提取路径 A-C 的累积值的单个查询,因此它本身和所有步骤都在里面:[A-C] + [A-B] + [B-C]。

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

我认为这个查询考虑到步骤的值不能同时在开始和结束但我不知道如何表达最后一个条件(ID_path = ID_path)以便仅提取具有相同的记录id_path。 有没有具体的SQL函数?

感谢任何帮助/mysql 编码指南/建议

最佳答案

你可以这样做:

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


SQl fiddle demo

关于mysql - SQL - 选择关联记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13393130/

相关文章:

mysql - 我如何解决此 SQL 的 "Using filesort"?

mysql - 如何从数据库图制作类图?

mysql - 获取每个月(8 月至 11 月)的前 50 条记录,但仅限唯一记录

sql - MySQL 世界数据库试图避免子查询

mysql - 在 MySQL 中获取上个月未保留的用户

MySQL Select From To 并在返回的 id 结果中排除 m

java - ResultSet 关闭后不允许进行 ResultSet、空指针异常和 SQLException 操作

c# - 如何在 Simple.Data 中正确执行预加载?

sql - 从由其他列聚合并选择最大日期的列中获取任何值

c# - 如何使用c#.net在数据表中搜索一行