繁体   English   中英

MYSQL 选择 Min(Time) 其中 date col 是 min(Date)

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM