gpt4 book ai didi

mysql - SQL 查询查找具有相同名称字段的两行之间的负变化

转载 作者:行者123 更新时间:2023-11-29 12:55:58 26 4
gpt4 key购买 nike

我有一个表,其中包含如下行:(日期、分数、姓名)日期字段有两个可能的日期,并且名称值可能仅出现在一个日期下(如果最近添加或删除了该名称)。

我正在寻找一个包含如下行的表:(Delta, Name),其中 delta 是每个名称在较早日期和较晚日期之间的分数变化。此外,我只对负变化感兴趣,因此如果 Delta>=0,它根本不应该出现在输出表中。

我面临的主要挑战是计算 Delta 场。正如标题所说,应该是一个SQL查询。

预先感谢您的帮助!

最佳答案

我假设每个名称都可以有自己的开始/结束日期。如果整个表只有两个可能的日期,则可以大大简化。

我在 SQL Fiddle 中尝试了这个 here

SELECT (score_end - score_start) delta, name_start
FROM
( SELECT date date_start, score score_start, name name_start
FROM t t
WHERE NOT EXISTS
( SELECT 1
FROM t x
WHERE x.date < t.date
AND x.name = t.name
)
) AS start_date_t
JOIN
( SELECT date date_end, score score_end, name name_end
FROM t t
WHERE NOT EXISTS
( SELECT 1
FROM t x
WHERE x.date > t.date
AND x.name = t.name
)
) end_date_t ON start_date_t.name_start = end_date_t.name_end
WHERE score_end-score_start < 0

关于mysql - SQL 查询查找具有相同名称字段的两行之间的负变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24066521/

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