mysql - SQL:选择给定日期时间的每一天的最后一条记录
问题描述
我有一个stock
数据表(数据库是 MySQL):
trade_time price
2013-01-02 09:43:00 515.61
2013-01-03 09:39:00 525.90
2013-01-03 11:38:00 539.44
2013-01-03 13:22:00 509.16
2013-01-04 09:47:00 507.40
2013-01-04 14:33:00 517.45
2013-01-07 09:33:00 550.42
2013-01-07 13:13:00 524.85
2013-01-07 14:51:00 536.44
我想返回每天的最后成交价
trade_date price
2013-01-02 515.61
2013-01-03 509.16
2013-01-04 517.45
2013-01-07 536.44
这个问题与本网站上其他“根据日期时间选择最新记录”问题的不同之处在于,输入是 indatetime
但输出是 in date
。让我知道这个问题已经得到解答。
解决方案
您可以加入一个子查询,该查询可以找到每个日期的最大日期时间。
SELECT t1.trade_time, t1.price
FROM yourTable t1
INNER JOIN
(
SELECT DATE(trade_time) AS trade_date, MAX(trade_time) AS max_trade_time
FROM yourTable
GROUP BY DATE(trade_time)
) t2
ON t2.trade_date = DATE(t1.trade_time) AND
t2.max_trade_time = t1.trade_time
ORDER BY
t1.trade_time;
演示
推荐阅读
- makefile - Z3 makefile 无法识别文件更改
- reactjs - aws 中的“一个或多个参数值无效”错误
- php - 在 PHP 中使用 Ajax 获取随机空请求
- javascript - JavaScript 污染全局命名空间?
- python - 寻找一种算法,也可以返回局部最小值
- c# - 安装时程序没有响应
- excel-formula - 当值为零时,如何隐藏货币符号并使单元格显示为空白
- variables - 从另一个文件 ansible 获取 vars
- spring-boot - 不写 JSON:无限递归(StackOverflowError);嵌套异常是 com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion
- reactjs - 为什么在发布我的应用程序时遇到此错误?