选择所选行的列的SQL最大值
当一个“callid”有多个条目时,我在选择一行时遇到问题 在这种情况下,将选择两行:选择所选行的列的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
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,有时它的可读性很好。