首页 > 解决方案 > 选择最大 TASK_ID 和 CREATED_DATE - 已经尝试过 MAX 和 DISTINCT

问题描述

我只需要获取第二条记录并忽略第一条记录。我有这个数据:

REFERENCE_NO       TASK_ID        CREATED_DATE
------------------------------------------------------------
244038             83102          2020-01-14 09:23:21:000000
244038             83114          2020-01-14 09:23:21:867000

预期输出:

REFERENCE_NO       TASK_ID        CREATED_DATE
------------------------------------------------------------
244038             83114          2020-01-14 09:23:21:867000

标签: sqlsql-server

解决方案


您可以尝试以下查询。

您可以从链接Aggregate Functions (Transact-SQL) 获取详细信息并学习。

Select max(CREATED_DATE) as MaxCREATED_DATE
      , max(TASK_ID) as MaxTaskId
from yourtable

你也可以试试下面的。

Select REFERENCE_NO, max(CREATED_DATE) as MaxCREATED_DATE
      , max(TASK_ID) as MaxTaskId
from yourtable
group by REFERENCE_NO

这是基于您的示例数据的实现。

create table TestTable(REFERENCE_NO Varchar(10), TASK_ID int, CREATED_DATE Datetime)
insert into TestTable Values
('244038', 83102, '2020-01-14 09:23:21'),
('244038', 83114, '2020-01-14 09:23:21')

Select REFERENCE_NO, max(CREATED_DATE) as MaxCREATED_DATE
      , max(TASK_ID) as MaxTaskId
from TestTable
group by REFERENCE_NO

输出是:

REFERENCE_NO    MaxCREATED_DATE            MaxTaskId
----------------------------------------------------
244038          2020-01-14 09:23:21.000    83114

Live db<>fiddle 演示

如下图所示。

在此处输入图像描述


推荐阅读