Mysql 它不断显示错误函数不存在
我需要mysql查询: 显示工资高于15000的员工级别和员工数量 我试过这些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> 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子句中。