gpt4 book ai didi

mysql - 如何在mysql中获取每天的最后一条记录?

转载 作者:可可西里 更新时间:2023-11-01 06:43:39 25 4
gpt4 key购买 nike

我想在 mysql 中获取每天的最后一条记录。 Location<id, date, place_id>表每天都有多个条目。此 Location 表具有 place_id 和插入 place_id 的时间。

同时考虑如果 place_id 不存在则返回具有 place_id 的倒数第二条记录。在下表中为 NULL, '2016-04-06 18:52:06'记录我们正在返回'13664', '2016-04-06 12:57:30' ,这是“2016-04-06”(3 月 6 日)的倒数第二条记录,并且具有 place_id。

还有一点,在一天之内,place_id会更多,见下表..

   id  ||  place_id || date
'1', '47', '2016-04-05 18:09:37'
'2', '48', '2016-04-05 12:09:37'
'3', '13664', '2016-04-06 12:57:30'
'4', '9553', '2016-04-08 10:09:37'
'5', NULL, '2016-04-06 18:52:06'
'6', '9537', '2016-04-07 03:34:24'
'7', '9537', '2016-04-07 03:34:24'
'8', '656', '2016-04-07 05:34:24'
'9', '7', '2016-04-07 05:34:57'

当我运行以下查询时,它返回以下结果

查询 我运行了以下查询,但它给出了错误的结果

`Location<id, place_id, date>`

select L1.place_id, L1.date from
Location1 L1
Left join
Location1 L2
on
Date(L1.date) = Date(L2.date)
And
L1.date < L2.date
where
L2.date is null

group by L1.date;

我想要的结果:

 id....place_id ........date   
'1', '47', '2016-04-05 18:09:37'
'3', '13664', '2016-04-06 12:57:30'
'4', '9553', '2016-04-08 10:09:37'
'9', '7', '2016-04-07 05:34:57'

最佳答案

你可以试一试:

SELECT 
L.id,
L.place_id,
L.date
FROM Location L
INNER JOIN
(
SELECT
MAX(date) max_time
FROM Location
GROUP BY Date(`date`)
) AS t
ON L.date = t.max_time

SQL FIDDLE DEMO

SQL FIDDLE DEMO2

[基于您的预期输出]

关于mysql - 如何在mysql中获取每天的最后一条记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37109338/

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