Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.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 错误:聚合可能不会出现在WHERE子句中_Sql_Sql Server - Fatal编程技术网

Sql 错误:聚合可能不会出现在WHERE子句中

Sql 错误:聚合可能不会出现在WHERE子句中,sql,sql-server,Sql,Sql Server,我正在尝试获取列的最大值: select * from ( select col1, count(*) as cnt from talbe1 group by col1 ) dt where cnt = max(cnt) 我试图得到准确的值,结果是: where cnt = 5 或 这还可以,那么第一个查询有什么问题 编辑:我放在那里的数字(5,3)是完全随机的,我想得到cnt的最大数量。聚合子句必须放在HAVING部分。但是,这无法按原样处理您的查询。你可能想做的是: select

我正在尝试获取列的最大值:

select * from
( select col1, count(*) as cnt from talbe1
group by col1
) dt
where cnt = max(cnt)
我试图得到准确的值,结果是:

where cnt = 5   

这还可以,那么第一个查询有什么问题


编辑:我放在那里的数字(5,3)是完全随机的,我想得到cnt的最大数量。

聚合子句必须放在
HAVING
部分。但是,这无法按原样处理您的查询。你可能想做的是:

select top 1 col1, count(*) as cnt 
from talbe1
group by col1
order by count(*) desc

聚合子句必须放在
HAVING
部分。但是,这无法按原样处理您的查询。你可能想做的是:

select top 1 col1, count(*) as cnt 
from talbe1
group by col1
order by count(*) desc

您可以使用
HAVING
子句来实现这一点。例如,如果要获取
cnt=3
记录

Select col1, count(*) as cnt from talbe1
Group by col1
Having count(*)=3
如果您想获得
MAX(cnt)


您可以使用
HAVING
子句来实现这一点。例如,如果要获取
cnt=3
记录

Select col1, count(*) as cnt from talbe1
Group by col1
Having count(*)=3
如果您想获得
MAX(cnt)

我找到了一个解决方案,
这很简单:(我应该更加专注)

我找到了一个解决方案,
这很简单:(我应该更加专注)

这个查询怎么样:

select * from
(
    select 
        col1, 
        count(*) as cnt, 
        RANK() OVER(ORDER BY count(*) DESC) AS ran 
    from talbe1 
    group by col1
) dt
where ran=1
这个查询怎么样:

select * from
(
    select 
        col1, 
        count(*) as cnt, 
        RANK() OVER(ORDER BY count(*) DESC) AS ran 
    from talbe1 
    group by col1
) dt
where ran=1

这只是返回3个计数而不是最大值???@Star我想这是他根据OPNo试图得到的结果我是OP,对不起,也许我没有回答好我的问题,无论如何,谢谢。@Star:那么,你投票否决了我的困惑并帮助了你?伟大的感谢不是关于投票,而是关于其他答案,这些答案给出了需要的结果,与你的答案不一致,从而获得了更多的选票。澄清一下,不要难过。这只是返回3个计数而不是最大值???@Star我想这就是他根据OPNo试图得到的东西我是OP,对不起,也许我没有回答好我的问题,无论如何,谢谢。@Star:那么,你投票否决了我的困惑并帮助了你?伟大的感谢不是关于投票,而是关于其他答案,这些答案给出了需要的结果,与你的答案不一致,从而获得了更多的选票。只是不要难过。