gpt4 book ai didi

MySQL:计算组比率/增量中的第一到第二

转载 作者:行者123 更新时间:2023-11-29 06:51:33 24 4
gpt4 key购买 nike

我有一个包含赛车结果的表格:

race_id   participant_id   time
1 15 1.0
1 21 1.05
1 27 2
2 27 2.55
2 15 2.75
2 21 3.45

我需要包含每组中第一个和第二个参与者之间增量的聚合表。使用窗口函数可以轻松完成,但 MySQL 中没有这样的选项:

race_id   winner  delta_to_second
1 15 0.05
2 27 0.2

如何在 MySQL 中完成此操作?

最佳答案

我会用这个开始......但还有更有效的选择......

DROP TABLE IF EXISTS my_table;

CREATE TABLE my_table
(race_id INT NOT NULL
,participant_id INT NOT NULL
,time DECIMAL (5,2) NOT NULL
,PRIMARY KEY(race_id,participant_id)
);

INSERT INTO my_table VALUES
(1,15,1.0),
(1,21,1.05),
(1,27,2),
(2,27,2.55),
(2,15,2.75),
(2,21,3.45);

SELECT x.*
, MIN(y.time - x.time) delta
FROM my_table x
JOIN my_table y
ON y.race_id = x.race_id
AND y.time > x.time
JOIN
( SELECT race_id
, MIN(time) time
FROM my_table
GROUP
BY race_id
) z
ON z.race_id = x.race_id
AND z.time = x.time
GROUP
BY race_id
, participant_id
, time;
+---------+----------------+------+-------+
| race_id | participant_id | time | delta |
+---------+----------------+------+-------+
| 1 | 15 | 1.00 | 0.05 |
| 2 | 27 | 2.55 | 0.20 |
+---------+----------------+------+-------+

关于MySQL:计算组比率/增量中的第一到第二,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47228440/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com