首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

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

2014-01-05 
求sqlconut(max)表:wps_systemtj 字段:sys_id,sys_userDiQu,sys_version2117.1.7.173117.1.7.174317.1.6.1

求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

热点排行