ID Value Date
1 10 2023-10-12 16:10:59.457
1 20 2023-10-12 14:20:54.997
1 30 2023-10-13 10:30:59.457
1 70 2023-10-13 10:20:54.997
2 10 2023-10-12 18:00:59.457
2 20 2023-10-13 14:00:54.997

我有一个带有和ID、一些值和一个日期字段的表,我想按ID和日期分组,但只取每个ID的最大日期值.我的数据库是SQL Server.

ID Value Date
1 10 2023-10-12 16:10:59.457
1 30 2023-10-13 10:30:59.457
2 10 2023-10-12 18:00:59.457
2 20 2023-10-13 14:00:54.997

推荐答案

使用窗口概念来解决这一问题.

SELECT id,
   value,
   date,
   ROW_NUMBER(date) OVER
     (PARTITION BY id,TO_DATE(date) ORDER BY date DESC)
     AS row_number
  FROM YOUR_TABLE 
WHERE row_number = 1

将存在开发者需要移除或忽略的附加栏row_number.:)

Sql相关问答推荐

在postgresql中使用来自另一个字段的日期名称作为JSONB查询中的关键字

SQL计数所有值在联接范围内的行

如何从上一个值减go 值

BigQuery`喜欢ANY‘和`不喜欢ANY’

按每天的最大值分组

Lag()函数的差异:R与SQL(将R代码转换为SQL)

BigQuery-当子查询不返回任何结果时,所有结果为零

使用多个嵌套数组查询JSON数据

在SQL Server中设置关联对象的有效JSON格式

PATINDEX中与[A-Z]匹配(U除外)的正则表达式

通过UPDATE SELECT更新表时出现问题

SQL 查找 varchar 类型列及其值中多次出现的子字符串

如何 for each id创建长度等于id长度的不同日期序列?

SQL中如何转置表格 UNPIVOT是唯一的 Select 吗?

查询以查找今天和昨天的数据之间的差异以及伪列

Snowflake 中的对象是如何比较的?

PostgresQL-根据另一列找到 3 个最低值

如何根据 Amazon Athena 中的多个列值删除重复行?

如何找到特定时间间隔内的最大和最小日期?

BigQuery 错误:SELECT 列表表达式引用 esthetician.LICENSE_TYPE,它既未在 [49:8] 分组也未聚合