如何查询数据表中最高价格首次出现对应的datetime值
需求说明
- 从给定数据表中查询最高价格对应的首个datetime值,若最高价格出现多次,返回时间更早的记录的datetime字段
涉及数据表
| volume | price | datetime |
|---|---|---|
| 400 | 9 | 2021-09-29 04:00:00-04:00 |
| 900 | 22 | 2021-09-29 06:00:00-04:00 |
| 1000 | 31 | 2021-09-29 08:00:00-04:00 |
| 400 | 21 | 2021-09-29 10:00:00-04:00 |
| 1200 | 31 | 2021-09-29 12:00:00-04:00 |
预期输出
2021-09-29 08:00:00-04:00
常用实现方案
标准SQL实现
SELECT datetime FROM 你的表名 -- 先筛选所有价格等于最高值的记录 WHERE price = (SELECT MAX(price) FROM 你的表名) -- 按时间升序排序,更早的记录排在前面 ORDER BY datetime ASC -- 取第一条记录即可得到最早的对应时间 LIMIT 1;
Python pandas实现
假设数据已经读取到名为df的DataFrame对象中:
# 筛选最高价格记录→按时间升序排序→取第一条的datetime字段 result = df[df['price'] == df['price'].max()].sort_values('datetime').iloc[0]['datetime']
内容的提问来源于stack exchange,提问作者GinSnipe
相关产品推荐
相关产品推荐

