当前位置: 代码迷 >> Sql Server >> 求sql conut(max),该如何解决
  详细解决方案

求sql conut(max),该如何解决

热度:198   发布时间:2016-04-24 19:23:30.0
求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
  相关解决方案