创建两个表emp_merits(meritid,empid,date,meritpoints),emp1(empid,empname)每个员工每月都会根据他们的表现获得功绩点。因此,同一员工可以在表中拥有多个具有不同优点的条目。 列出特定员工在特定日期之间获得的所有优点(此处将输入 empid) 根据每位员工的功绩点从最高到最低进行排名
到目前为止我已经尝试过这个查询
select empid , sum (meritpoints) as totalmerits , (DENSE_RANK()OVER (PARTITION BY empid ORDER BY meritpoints desc)) AS rank from emp_merit
group by empid,meritpoints
order by empid ,totalmerits desc
最佳答案
你可以试试这个:
SELECT @rownum := @rownum + 1 AS rank, a.*
FROM (
SELECT empid, sum(meritpoints) AS totalmerits
FROM emp_merits
GROUP BY empid
ORDER BY totalmerits) a, (SELECT @rownum := 0) r ;
您可能需要在 WHERE 子句中指定具体日期。
关于mysql - 根据每位员工的功绩点从最高到最低对每个员工进行排名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48903521/