首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL group by列中的重复值

SQL group by列中的重复值
EN

Stack Overflow用户
提问于 2012-04-17 04:00:09
回答 2查看 337关注 0票数 0

我在MySQL中有一个SQL表,如下所示:

代码语言:javascript
复制
id  technician_id  actionDate  station_id
1     10           1317909863      1
2     10           1317909864      1
3     10           1317909865      1
4     10           1317909866      2
5     10           1317909867      2
6     10           1317909868      2
7     10           1317909869      2
8     10           1317909870      2
9     10           1317909871      3
10    10           1317909872      1
11    10           1317909873      1

此数据用于跟踪现场技术人员。id列是一个自动增量键。actionDate列是自1970年以来的秒数,station_id是技术人员在其上执行操作的现场工作站的id。

我想从这些数据中确定一些“统计数据”。例如,我想确定技术人员所做的路线(从站点1到2,然后从2到3,然后从3返回到1)。还想确定他每次去一个车站花了多少时间(例如:他去了车站1,停留了3分钟,然后开车30分钟去了车站2,停留了15分钟,然后在20分钟内开车去了车站3,停留了10分钟,然后回到了1)。

正如你可以得到的,这是一个追踪系统。我需要先按actionDate排序,然后再按station_id分组。但由于技术人员可以多次访问某些站点,因此无法按该列对其进行分组。

有什么建议吗?

我有这个,但它对所有具有相同station_id的行进行了重新分组:

代码语言:javascript
复制
select station_id, min(actionDate), max(actionDate) 
from Action
where technician_id = 10
group by station_id
order by actionDate;
EN

回答 2

Stack Overflow用户

发布于 2012-04-17 04:06:22

我讨厌推荐游标,但看看这一点,它似乎是一个候选者。游标可以在数据中快速移动一次,并在移动过程中填充一个临时表。

我花了很多时间寻找重叠的时间范围等类似的问题,并逐渐意识到,在某些情况下,运行光标是更好、更快的选择。

也许这里有人可以提出不同的建议..。

如果你需要一个例子,请告诉我。

票数 1
EN

Stack Overflow用户

发布于 2012-04-17 04:25:14

这在mssql中会更容易,但本文可能会有所帮助,http://www.explodybits.com/2011/11/mysql-row-number/

对于第一部分,您想要查询其中行号为1的按站点id划分的查询。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10180793

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档