Mysql 它不断显示错误函数不存在

Mysql 它不断显示错误函数不存在,mysql,Mysql,我需要mysql查询: 显示工资高于15000的员工级别和员工数量 我试过这些 mysql> SELECT WORKER.count(PLEVEL), PAY FROM WORKER JOIN PAYLEVEL ON WORKER.PLEVEL=PAYLEVEL.PLEVEL where pay >= 15000; 错误1630(42000):函数worker.count不存在。检查参考手册中的“函数名解析和解析”部分

我需要mysql查询: 显示工资高于15000的员工级别和员工数量

我试过这些

mysql> SELECT WORKER.count(PLEVEL), PAY 
        FROM WORKER 
            JOIN PAYLEVEL ON WORKER.PLEVEL=PAYLEVEL.PLEVEL 
        where pay >= 15000;
错误1630(42000):函数worker.count不存在。检查参考手册中的“函数名解析和解析”部分

错误1052(23000):字段列表中的“PLEVEL”列不明确


count不是表名的函数,因此不需要在函数count前面加上表名,最终需要在column name参数的count函数中加上表名

 SELECT count(worker.PLEVEL), PAY 
    FROM WORKER 
        JOIN PAYLEVEL ON WORKER.PLEVEL=PAYLEVEL.PLEVEL 
    where pay >= 15000
 GROUP BY PAY;
对于聚合函数,您也需要分组

如果你也需要为plevel而聚集,那么

SELECT count(worker.PLEVEL), PAY, PAYLEVEL.PLEVEL 
    FROM WORKER 
        JOIN PAYLEVEL ON WORKER.PLEVEL=PAYLEVEL.PLEVEL 
    where pay >= 15000
 GROUP BY PAY, PAYLEVEL.PLEVEL ;

count不是表名的函数,因此不需要在函数count前面加上表名,最终需要在column name参数的count函数中加上表名

 SELECT count(worker.PLEVEL), PAY 
    FROM WORKER 
        JOIN PAYLEVEL ON WORKER.PLEVEL=PAYLEVEL.PLEVEL 
    where pay >= 15000
 GROUP BY PAY;
对于聚合函数,您也需要分组

如果你也需要为plevel而聚集,那么

SELECT count(worker.PLEVEL), PAY, PAYLEVEL.PLEVEL 
    FROM WORKER 
        JOIN PAYLEVEL ON WORKER.PLEVEL=PAYLEVEL.PLEVEL 
    where pay >= 15000
 GROUP BY PAY, PAYLEVEL.PLEVEL ;

选择WORKER.PLEVEL,COUNT(WORKER.PLEVEL),PAY
选择WORKER.PLEVEL,COUNT(WORKER.PLEVEL),PAY非常感谢。。我想澄清一件事。。。为什么我们要按工资分组而不是按级别分组。i.m不在您的数据中,所以我不知道您的目标。无论如何,sql sintax要求在select子句中按顺序提到not aggreated列的order by子句。您的PLEVEL似乎只是一个与聚合无关的连接子句。。如果您需要PLEVEL aggregation小计,也可以将此列添加到select和group by子句中。非常感谢。。我想澄清一件事。。。为什么我们要按工资分组而不是按级别分组。i.m不在您的数据中,所以我不知道您的目标。无论如何,sql sintax要求在select子句中按顺序提到not aggreated列的order by子句。您的PLEVEL似乎只是一个与聚合无关的连接子句。。如果需要PLEVEL aggregation小计,还可以将此列添加到select和group by子句中。