哦!我的听觉很痛..以为我有几次但是史诗般的失败:(
我有以下数据,数百万行,已索引,MySQL 5.6。
在此表中,有几组数据,而uuid基本上是每组数据的唯一ID。
我需要在数据集中找到每组第一行和第二行的平均值。换句话说,自从使用同一组的第一个插入物和第二个插入物创建该集合以来经过了多少时间,然后是结果的平均值。
我可以得到平均的没问题,我似乎无法想出一种方法来获得每组第一行和第二行之间的时差。
[我什至不会让自己感到尴尬,并使用子查询和LIMIT将我错误的尝试粘贴到破碎的SQL上,足以说明这一点使我逃脱了。
任何帮助,谢谢我,啤酒:/
+------+-----------------------------------------+----------------------------+
| id | uuid | stamp |
+------+-----------------------------------------+----------------------------+
| 707 | 60b5-d062-5829-c11d-5b71-5d85-075b-a3c5 | 2020-01-01 17:00:28.000000 |
| 708 | 60b5-d062-5829-c11d-5b71-5d85-075b-a3c5 | 2020-01-01 17:01:30.000000 |
| 709 | 0ccf-94e0-ce72-8092-1975-5bea-6131-c719 | 2020-01-02 14:11:48.000000 |
| 710 | 59c8-60ee-d172-511a-a477-c637-6789-f14a | 2020-01-02 14:23:36.000000 |
| 711 | b33b-7584-1fed-e138-28ba-c24a-9b46-88e7 | 2020-01-02 14:24:07.000000 |
| 712 | eddc-b12a-5ef2-baea-cf53-7287-5805-d922 | 2020-01-02 14:24:26.000000 |
| 713 | 257b-fc66-6d7a-ba21-727e-1da7-0ee1-714c | 2020-01-02 14:25:31.000000 |
| 718 | c5d9-acba-9a12-aacb-cf45-c5a9-2b8d-314c | 2020-01-02 15:46:41.000000 |
| 719 | 0ccf-94e0-ce72-8092-1975-5bea-6131-c719 | 2020-01-02 15:55:42.000000 |
| 720 | c5d9-acba-9a12-aacb-cf45-c5a9-2b8d-314c | 2020-01-02 15:56:33.000000 |
| 722 | c5d9-acba-9a12-aacb-cf45-c5a9-2b8d-314c | 2020-01-02 16:16:14.000000 |
| 723 | c5d9-acba-9a12-aacb-cf45-c5a9-2b8d-314c | 2020-01-02 16:21:25.000000 |
| 726 | 6610-a9df-358d-0065-beb8-cea1-82a6-3258 | 2020-01-02 17:16:33.000000 |
| 727 | 6610-a9df-358d-0065-beb8-cea1-82a6-3258 | 2020-01-02 17:21:20.000000 |
| 728 | 6610-a9df-358d-0065-beb8-cea1-82a6-3258 | 2020-01-02 17:45:07.000000 |
| 729 | 6610-a9df-358d-0065-beb8-cea1-82a6-3258 | 2020-01-02 17:50:17.000000 |
| 730 | 6610-a9df-358d-0065-beb8-cea1-82a6-3258 | 2020-01-02 18:14:02.000000 |
| 731 | 6610-a9df-358d-0065-beb8-cea1-82a6-3258 | 2020-01-02 18:27:48.000000 |
| 732 | 6610-a9df-358d-0065-beb8-cea1-82a6-3258 | 2020-01-02 18:28:57.000000 |
| 733 | c193-a46f-1104-3ee3-7387-94a8-ef32-a85e | 2020-01-02 18:40:40.000000 |
| 734 | c193-a46f-1104-3ee3-7387-94a8-ef32-a85e | 2020-01-02 18:40:49.000000 |
要获取每个uuid
的差额,可以使用row_number()
识别每个组的第一条记录和第二条记录,然后按uuid
进行汇总。
如果用户ID仅出现两次,那么这很简单。您有数百万行,因此让我们尝试避免排序并假设您拥有正确的索引。