gpt4 book ai didi

mySQL - 从某个用户的1个表中选择第一行和最后一行数据

转载 作者:行者123 更新时间:2023-11-29 08:46:36 25 4
gpt4 key购买 nike

我有一个包含多行数据的表,其中有一列填充了日期。我需要选择两个日期之间的第一行和最后一行。

示例:
分数表:

id      userId       value1         value2        date
1 1 1 2 2012-09-01 00:00:00
2 1 5 8 2012-09-03 00:00:00
3 1 7 11 2012-09-04 00:00:00
4 1 9 14 2012-09-05 00:00:00

我需要获取 userId 1 的日期 2012-09-02 00:00:00 和 2012-09-04 00:00:00 之间的值 value1 和 value2。

期望的结果应该是:

userId    value1_old    value2_old    value1_new    value2_new
1 5 8 7 11

值 _old 应包含较早的数据,但最接近日期 2012-09-02 00:00:00。
值 _new 应包含该日期之前的数据,但最接近日期 2012-09-04 00:00:00

问题是,我如何获取这些数据?我不知道如何让它发挥作用。

提前致谢,
标记

最佳答案

SELECT   t.userId,
first.value1 AS value1_old,
first.value2 AS value2_old,
last.value1 AS value1_new,
last.value2 AS value2_new
FROM (
SELECT userId, MIN(date) AS first, MAX(date) AS last
FROM Score
WHERE userId = 1
AND date BETWEEN '2012-09-02 00:00:00' AND '2012-09-04 00:00:00'
) t
JOIN Score first ON first.userId = t.userId AND first.date = t.first
JOIN Score last ON last.userId = t.userId AND last.date = t.last

查看 sqlfiddle .

关于mySQL - 从某个用户的1个表中选择第一行和最后一行数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12404189/

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