sq,每天唯一的第一个值

huwehgph  于 2021-06-21  发布在  Mysql
关注(0)|答案(5)|浏览(413)

这个问题在这里已经有答案了

sql仅选择列上具有最大值的行[重复](27个答案)
两年前关门了。
我有一个简短的问题:我需要为下表中的每一天取第一个值:

Date                Price
2018-09-01 10:00:00 123
2018-09-01 10:01:00 2568
2018-09-01 10:02:00 2155
2018-09-01 10:03:00 23
2018-09-02 10:03:00 25868
2018-09-02 10:10:00 84213
2018-09-03 15:10:00 58192
2018-09-03 10:16:00 36

所以结果应该是这样的:

Date                Price
2018-09-01 10:00:00 123
2018-09-02 10:03:00 25868
2018-09-03 10:16:00 58192

我的查询如下所示:

SELECT price, min(date)
FROM table
WHERE data BETWEEN '2018-09-01%' AND "2018-09-03%"
GROUP BY date

我这里有个问题。我无法编写一个将每天的前几分钟都考虑在内的查询。有人能帮我解决这个问题吗?
谢谢你的回答

ukdjmx9f

ukdjmx9f1#

您需要按时间选择日期和排序,然后将查询限制为一个。

SELECT price FROM table WHERE date = (date object) SORT BY date LIMIT=1
nuypyhwy

nuypyhwy2#

试试这个:

SELECT t.price, t.date
FROM table t
JOIN (SELECT price, min(date) as date
      FROM table 
      GROUP BY price) t2
  ON t2.date = t.date
  AND t2.price = t.price
WHERE t.date BETWEEN '2018-09-01%' AND "2018-09-03%"
bprjcwpo

bprjcwpo3#

使用相关子查询

select * from t t1
where date in (select min(date) from t t2 
                     where date(t1.date)=date(t2.date)
                      group by date(date)
                  )

https://dbfiddle.uk/?rdbms=mysql_8.0&fiddle=47d5494c6158ebcfeea7e80d55f3a589

date                   prince
2018-09-01 10:00:00     123
2018-09-02 10:03:00     25868
2018-09-03 10:16:00     36
2hh7jdfx

2hh7jdfx4#

尝试按日期分组,然后获得日期和价格的最小值

SELECT price, date from table where date in 
(
  SELECT min(date)
  FROM table
  WHERE date BETWEEN '2018-09-01%' AND "2018-09-03%"
  GROUP BY DATE(date)
) ;
qacovj5a

qacovj5a5#

尝试在查询中集成“limit=1”。这将结果减少到一个输出

相关问题