当前位置:  开发笔记 > 编程语言 > 正文

SQL有MAX(COUNT)错误

如何解决《SQL有MAX(COUNT)错误》经验,为你挑选了1个好方法。



1> Gordon Linof..:

那是正确的; 嵌套聚合函数没有意义(尽管在窗口函数中嵌套聚合函数确实有意义).一种简单的方法使用窗口函数,这在大多数数据库中都可用:

SELECT op.*
FROM (SELECT o.operatoriausPavadinimas, count(p.operatoriausID) as ct,
             RANK() OVER (ORDER BY count(p.operatoriausID) DESC) as seqnum
      FROM Operatorius o JOIN
           Planas p
           ON o.operatoriausID = p.operatoriausID 
      GROUP BY o.operatoriausPavadinimas
     ) op
WHERE seqnum = 1;

笔记:

作为缩写的表别名优于t1t2(或ab)等随机名称.

学习使用显式JOIN语法.简单规则: 不要FROM子句中使用逗号.

编辑:

好的,在SQL Server中,最简单的是TOP WITH TIES:

      SELECT TOP (1) WITH TIES o.operatoriausPavadinimas, count(p.operatoriausID) as ct
      FROM Operatorius o JOIN
           Planas p
           ON o.operatoriausID = p.operatoriausID 
      GROUP BY o.operatoriausPavadinimas
      ORDER BY COUNT(p.operatoriausID) DESC

推荐阅读
李桂平2402851397
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有