[英]How To Use Max function with group by using MYSQL
我有那三张桌子
考生
cdid cdname 1 Moussa 2 Moustafa 3 Haitham
职位
posid posname 1 pos1 2 pos2 3 pos3
工作邀请
cdid posid salary 1 1 600 1 2 800 1 3 700 2 1 500 2 2 700 2 3 900 3 2 1000 3 3 500
我需要进行查询以获取每个职位的最高薪资的cdname
桌子应该是这样的
cdname posname salary moussa pos1 600 haitham pos2 1000 moustafa pos3 900
我正在使用此查询,但没有获得正确的cdid
$sql="select joboffers.cdid,joboffers.posid,Max(joboffers.salary),candidates.cdname
FROM joboffers,candidates
Where joboffers.cdid=candidates.cdid
Group by joboffers.posid";
我认为您需要按所有未汇总的列进行分组,如下所示:
SELECT j.cdid, c.cdname, j.posid, MAX(j.salary)
FROM joboffers j
JOIN candidates c ON j.cdid = c.cdid
GROUP BY j.cdid, c.cdname, j.posid
SELECT c.cdname, p.posname, MAX(j.salary)
FROM joboffers j
INNER JOIN candidates c ON j.cdid = c.cdid
INNER JOIN positions p ON j.posid = p.posid
GROUP BY c.cdname, p.posname
尝试这个 :)
SELECT sub.cdname, sub.posname, sub.salary
FROM (
SELECT * FROM joboffers jo
INNER JOIN positions ps USING (posid)
INNER JOIN candidates cd USING (cdid)
ORDER BY posid, salary DESC
) sub
GROUP BY sub.posid
enter code here
SELECT customerNumber,MAX(金额)来自付款方式GROUP BY customerNumber ORDER BY MAX(金额);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.