SQL Server:选择同一列中具有相同值的2行的最大日期/时间

机会曼宁
Date                     Id   Name   ClockinOrOut
-------------------------------------------------
2019-12-19 10:24:00.000  4    Bob   In
2019-12-19 15:26:10.000  4    Bob   Out
2019-12-19 12:17:36.000  800  Gary  In
2019-12-19 08:41:21.000  800  Gary  Out

我似乎无法使用基于 Id 的最新日期/时间获得此输出,并且即使使用该MAX()函数,ClockInOrOut 是 In 还是 Out 也无关紧要

Date                     Id   Name   ClockinOrOut
-------------------------------------------------
2019-12-19 15:26:10.000  4    Bob   Out
2019-12-19 12:17:36.000  800  Gary  In 
戈登·利诺夫

如果您想要 each 的最新行id,那么一个方便的方法是:

select t.*
from t
where t.date = (select max(t2.date)
                from t t2
                where t2.id = t.id
               );

使用索引(id, date),这可能具有非常好的性能。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果另一列在SQL Server中相同,则获取具有最小列值的行

SQL Server:从同一列中具有匹配值的第一行之后的列中选择所有行

SQL 显示具有相同一列值的行分组的行

Oracle-SQL为同一列中具有重复值的行分配相同的row_number

在另一列的同一表中具有相同值的SQL组项目

sql:使用单个查询在另一列中选择具有相同列值的行

SQL查询以选择在同一列中具有不同值的子记录的父项

如何通过SQL中的另一列选择具有MAX(列值),DISTINCT的行?

SQL选择一列中具有重复值的所有行

SQL Server - 僅當同一列和表中該用戶 ID 存在值 B 時,才排除具有值 A 的所有行

SQL - 为每个非唯一 ID 选择具有不同一列的行

选择不重复的行,其中列中的所有值均是同一SQL Server

SQL:仅当在同一行中另一列具有不同的值时,才返回一列的值

sql加入具有不同值的同一列

如何更新列中具有最大值的一行(SQL Server)

SQL LITE同一列中2个日期时间元素的差异

在另一列中选择 id 相同但值不同的行 - SQL Server

如何在SQL Server中按标题每天选择一列中的最大值

SQL / Postgres:查找具有相同值的元组(对于另一列中的给定值)

查找其中一列属于同一值并且另一列满足SQL Server 2008中的条件的所有行

在单个查询中从SQL的同一列中选择最大值和最小值

SQL分组依据:选择另一列具有其最小值/最大值的值

在 SQL 中,如何选择在另一列中没有零值的最新日期

T-SQL选择重复的行,其中至少一列具有值

在SQL中选择具有唯一列值的行

SQL选择在一列中具有重复值的不同行,然后根据主键字段中的值为每个重复项选择一行

使用SQL选择列1中具有相同值但列2和3中具有不同值的所有行

在同一列中将具有相同名称的不同数据计数为1计数sql server

在特定列SQL Server中选择具有最大值的行