求sql conut(max)
表:wps_systemtj
字段:sys_id, sys_userDiQu, sys_version
2 11 7.1.7.17
3 11 7.1.7.17
4 31 7.1.6.16
5 31 6.1.6.16
6 11 7.1.6.16
怎么实现这个查询:
select sys_userDiQu ,count(max(sys_version))from wps_systemtj group by sys_userDiQu (现在有问题。)
------解决方案--------------------select a.sys_userDiQu,COUNT(*) cc
from wps_systemtj a
inner join
(
select sys_userDiQu ,max(sys_version) as max_sys_version
from wps_systemtj
group by sys_userDiQu
)b
on a.sys_userDiQu = b.sys_userDiQu and
a.sys_version = b.max_sys_version
group by a.sys_userDiQu
------解决方案--------------------第一:不能对包含聚合或子查询的表达式执行聚合函数 ,所以count(max(sys_version)) 这个写法存在语法错误。
第二:sys_version 这个列的类型不能用max函数
------解决方案--------------------因为max对应的sys_userdiqu只有一个,如果你要不现实sys_userDiQu,直接在外层count,不用group by和select那里的sys_userDiQu