[英]MYSQL Select Min(Time) where date col is min(Date)
我正在尝试选择日期为 Min(Date) 的 Min(Time) 有人能指出我正确的方向吗?
沿着这些路线的东西,但这不起作用。
select Min(timecol) as MinTime from myTable where daycol = '1' and datecol = min(datecol)
daycol datecol timecol
1 16/01/2019 08:30:00
1 17/01/2019 01:30:00
1 16/01/2019 12:30:00
1 18/01/2019 12:30:00
2 16/01/2019 08:30:00
你可以试试:
select timecol as MinTime from myTable where daycol = '1' order by datecol ASC limit 1
这应该这样做:
SELECT
MIN( timecol ) AS MinTime
FROM myTable
WHERE daycol = '1'
AND datecol = (
SELECT
MIN( datecol )
FROM myTable
WHERE daycol = '1'
)
;
如果您正在运行 MySQL 8 或更高版本(或任何支持窗口函数的数据库),则:
SELECT
daycol, datemin, timemin
FROM (
SELECT
*
, MIN( datecol ) OVER (PARTITION BY daycol) datemin
, MIN( timecol ) OVER (PARTITION BY daycol, datecol) timemin
FROM myTable
) d
WHERE daycol = '1'
AND datecol = datemin
AND timecol = timemin
这为您提供了最小的 timecol,其中 datecol 是最小的。 select Min(timecol) as MinTime from myTable where datecol = ( select min(datecol) from myTable);
确保 timecol 和 datecol 分别是 DATE 和 TIME 类型。
SELECT min(a.timecol), a.datecol, a.daycol FROM `timetable` a
WHERE a.datecol = (
SELECT min(b.datecol) from `timetable` b
)
这将返回 16/01/2019 行的 08:30 返回。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.