发生什么事情弄乱了我的GROUP BY查询?

Cof*_*fee 0 sql-server query-optimization

这是我的查询:

select top 60 * from ABC_Sessions (nolock)   
where EntryDate > '06-22-2012 23:59:59'
GROUP BY TargetedID
Run Code Online (Sandbox Code Playgroud)

然后它给了我这个错误:

消息8120,级别16,状态1,行1列"BI_Sessions.SessionID"在选择列表中无效,因为它不包含在聚合函数或GROUP BY子句中.

Mar*_*ers 6

将*在查询扩展到表中的所有列.

select top 60 TargetedID, SessionID, ...
from ABC_Sessions (nolock)
where EntryDate > '06-22-2012 23:59:59'
GROUP BY TargetedID 
Run Code Online (Sandbox Code Playgroud)

正如错误消息所述,SessionID没有聚合函数(例如MAX)选择是无效的.

这可行:

select top 60 TargetedID, MAX(SessionID) AS MaxSessionID
from ABC_Sessions (nolock)
where EntryDate > '06-22-2012 23:59:59'
GROUP BY TargetedID 
Run Code Online (Sandbox Code Playgroud)