Mic*_*eyn 2 sql t-sql sql-server-2008 sql-server-2008-r2
我有一个表,其中的行包含一个名为的列MySubId.此列中的值可以重复.我想找到最多出现的值的MySubId值和行数MySubId.
我有以下查询:
SELECT MySubId, COUNT(MySubId) AS MySubIdCount
FROM MyTable
GROUP BY MySubId
HAVING COUNT(MySubId)=MAX(COUNT(MySubId))
但我得到错误:
消息130,级别15,状态1,行4无法对包含聚合或子查询的表达式执行聚合函数.
用简单的查询不可能做到这一点吗?在HAVING子句中使用它之前,我是否必须嵌入子查询来计算MAX ?
更新:
我看到很多anwers通过使用过滤结果集TOP 1,所以我假设没有办法使用该MAX函数将此查询过滤到最大出现MySubId值?
select top 1 with ties MySubId, Count(MySubId) as MySubIdCount
from MyTable
group by MuSubId
order by 2 desc
| 归档时间: | 
 | 
| 查看次数: | 162 次 | 
| 最近记录: |