Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
选择所选行的列的SQL最大值_Sql_Sql Server_Group By_Sql Server 2014 - Fatal编程技术网

选择所选行的列的SQL最大值

选择所选行的列的SQL最大值,sql,sql-server,group-by,sql-server-2014,Sql,Sql Server,Group By,Sql Server 2014,当一个“callid”有多个条目时,我在选择一行时遇到问题 在这种情况下,将选择两行: Assignee maxTime Jim Smith 11:31:05 James Smith 17:50:16 我只想选择时间最长的一行 我想要的输出: Assignee maxTime James Smith 17:50:16 这是我的代码: select Assignee, MAX(TimeResolv) as maxT

当一个“callid”有多个条目时,我在选择一行时遇到问题

在这种情况下,将选择两行:

Assignee           maxTime
Jim Smith         11:31:05
James Smith       17:50:16
我只想选择时间最长的一行

我想要的输出:

 Assignee          maxTime
 James Smith      17:50:16
这是我的代码:

select Assignee, MAX(TimeResolv) as maxTime 
from heat8..asgnmnt 
where callid ='00539265' 
    and GroupName like '%cs%' 
Group by Assignee

非常感谢您的帮助。

您可以使用
TOP

SELECT TOP 1 * 
FROM heat8..asgnmntt t
ORDER BY t.timeResolv DESC
或效率较低的
不存在()

或使用窗口功能
行编号()


ROW\u NUMBER()
通过对每组的结果进行一次查询也很好。

您可以使用
TOP

SELECT TOP 1 * 
FROM heat8..asgnmntt t
ORDER BY t.timeResolv DESC
或效率较低的
不存在()

或使用窗口功能
行编号()


ROW\u NUMBER()
通过对每个组的结果进行一次查询也很好。

您可以使用子查询。子查询看起来与当前查询完全相同,但需要从中选择top 1

select TOP 1 Assignee, (TimeResolv) as maxTime
FROM (
     select Assignee, MAX(TimeResolv) as maxTime 
     from heat8..asgnmnt 
     where callid ='00539265' 
     and GroupName like '%cs%' 
     Group by Assignee
)
ORDER BY TimeResolv DESC

编辑:不需要子查询,但是如果您想使用与上面相同的代码以便于阅读,或者对您有意义。您可以继续使用此方法。

您可以使用子查询。子查询看起来与当前查询完全相同,但需要从中选择top 1

select TOP 1 Assignee, (TimeResolv) as maxTime
FROM (
     select Assignee, MAX(TimeResolv) as maxTime 
     from heat8..asgnmnt 
     where callid ='00539265' 
     and GroupName like '%cs%' 
     Group by Assignee
)
ORDER BY TimeResolv DESC

编辑:不需要子查询,但是如果您想使用与上面相同的代码以便于阅读,或者对您有意义。您可以继续使用此方法。

您也可以按maxTime descShow示例表数据执行TOP 1和Order by。(给出指定结果的那一个。)这很有效-谢谢。您也可以按maxTime descShow示例表数据进行TOP 1和Order。(给出指定结果的那一个。)这很有效-谢谢。不需要子查询。我更新了答案。不需要子查询,但如果您刚开始使用SQL,有时它的可读性很好。不需要子查询我更新了答案。不需要子查询,但如果您刚开始使用SQL,有时它的可读性很好。