SQL MAX COUNT& MIN COUNT

时间:2017-11-17 09:22:29

标签: sql mariadb

我在以下两个表中尝试这两个SQL语句:

SELECT TOP 1 
    Country
FROM (
    SELECT
        customer.country,
        count(*) as Appointments
    FROM        
       customer.country  
    GROUP BY 
        country
    ORDER BY 
        count(*) 
) AS AppointmentCount

上面的SQL应该通过COUNT为国家提供最大约会(对于MIN,我将使用ORDER BY DESC)

tables' image

不幸的是,上面的SQL给出了以下错误,但我找不到修复它的方法:

  

#1064 - 您的SQL语法出错;检查手册   对应于您的MariaDB服务器版本,以获得正确的语法   靠近' 1国家FROM(选择customer.country,count(*)'在第1行

有关如何使用上述SQL语句的任何帮助?任何帮助将非常感激。提前谢谢。

2 个答案:

答案 0 :(得分:2)

问题是TOP语句,即MSSQL。您需要使用LIMIT代替。试试这个:

SELECT
    Country
FROM (
    SELECT
        customer.country,
        count(*) as Appointments
    FROM        
       customer
    GROUP BY 
        country
) AS AppointmentCount
ORDER BY
    Appointments DESC
LIMIT 1

答案 1 :(得分:0)

这是一个小问题。您需要修复FROM子句。即customer.country不是一张桌子。这是对的:

FROM        
   customer

此外,TOP与子查询并不真正兼容。幸运的是,你不需要子查询:

SELECT
     TOP 1  customer.country
FROM        
   customer
GROUP BY 
    country
ORDER BY 
    count(*)