sql - 如何在包含最大值的表中查找记录?

标签 sql datetime select group-by max

虽然这个问题看起来很简单,但它有点棘手。

我有一个包含以下列的表格:

table A:
  int ID
  float value
  datetime date
  varchar(50) group

我想获取包含按“组”列分组的最大“日期”的记录的“ID”和“值”。类似 “每个组的最新值是多少?”

我可以获得每个组及其最大日期:
SELECT group, MAX(date) FROM A GROUP BY group; -- I also need the "ID" and "value"
但我想拥有最高日期的记录的“ID”和值。

在 A 和结果之间进行 JOIN 可能是答案,但无法知道 MAX(date) 指的是哪条记录(以防“日期”重复)。

有人可以帮忙吗?

最佳答案

您可以尝试使用子查询

select group, id, value, date from A where date in
( 选择 MAX(date) 作为日期
从 A
一组一组)
按组排序

关于sql - 如何在包含最大值的表中查找记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/376518/

相关文章:

MySQL SELECT 将天数间隔添加到日期时间列

mysql - 选择 all_data WHERE value_in_column LIKE specific_string

sql - SSMS 18 的无效列名问题

java - Java 中的简单 DateTime 类

SQL 获取未在项目中工作的名称

ios - 如何从 NSDate 中删除时区偏移量

grails - <g:select>中的Grails <g:if>

php - SQL 选择具有匹配值的行

sql - 用户定义的 SQL 函数计算错误

sql - 什么相当于 MySQL 中 MS Access 中的 Nz 函数? Nz 是 SQL 标准吗?