mysql - 如何将 'greater' 筛选器添加到结果 Pane 列中的每个 'minimum' 值

标签 mysql sql join min

我有以下语法:

SELECT t1.cardid, t1.Name, t2.record
FROM t2 INNER JOIN t1 on t1.tag=t2.tag GROUP BY t1.cardid, t1.name

结果是这样的:

cardid      name       record
100         Dan        09:00
100         Dan        10:00
200         Jane       06:00
200         Jane       09:00
399         Lisa       07:00
399         Lisa       13:00
500         Kane       10:00
500         Kane       12:10
500         Kane       13:50

现在我添加一个“min”过滤器并将语法修改为如下所示:

SELECT t1.cardid, t1.Name, min(t2.record) As Record
FROM t2 INNER JOIN t1 on t1.tag=t2.tag GROUP BY t1.cardid, t1.name

结果变成这样:

cardid      name       record
100         Dan        09:00
200         Jane       06:00
399         Lisa       07:00
500         Kane       10:00

我如何添加一个过滤器,以便只有每条记录的“最小值”超过;在“记录”列中说出“08:00”值。我想要的结果是这样的:

cardid      name       record
100         Dan        09:00
500         Kane       10:00

我正在使用 SQL。

最佳答案

SELECT t1.cardid, t1.Name, min(t2.record) As Record
FROM t2 INNER JOIN t1 on t1.tag=t2.tag
GROUP BY t1.cardid, t1.name
having min(t2.record) >= cast('08:00' as time)

我想记录也是time类型,您也可以使用 convert('08:00', time) 甚至尝试不使用 cast/convert,它也可以工作,因为 mysql 可以进行自动转换

对于非常老的 mysql 你可以尝试使用 having 0+substring(t2.record, 1,2) >= 8

关于mysql - 如何将 'greater' 筛选器添加到结果 Pane 列中的每个 'minimum' 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19531443/

相关文章:

mysql - 计算MySQL中组记录的总和

sql - 如何在 MySQL 中获取下一条/上一条记录?

sql - 在 nvarchar 列中找到两个或更多相似字符

mysql - 当我使用另一个表的 SUM 时无法解析列

派生表的where子句中的mysql派生表

php - Symfony 2 中的联接表

performance - sql连接查询中表别名的重要性是什么?

mysql - 将 SQL Server 数据库备份到 MySQL

MySQL --- 在同一个表上设置操作 MINUS 和 INTERSECT

php - 更新命令输出