一条mysql语句查询top数据

作者: | 更新日期:

给大家出个游戏,使用一条mysql语句查询出排名前几的数据来。

本文首发于公众号:天空的代码世界,微信号:tiankonguse

我们现在有一批程序员每月工资的数据,存在两个表中。

程序员表 Programmer 表有 程序员的名字,工资,和公司ID。

公司表 Company 中有公司的名字。

我们的目标是求每个公司工资排前三的员工的信息。

条件: 公司按公司表顺序输出,每个公司内按工资排序,工资相同的按程序员的名字排序。

答案大家尝试的次数多了就出来了,

提醒:需要写出通用的mysql语句,即我把前三换成前四,前五你只需要修改一个数字就行了。
答案清明后揭晓。

+----+-------+-------+---------+                    
|         Programmer           |                    
+----+-------+-------+---------+                    
| Id | Name  | Pay   | Company |                    
+----+-------+-------+---------+                    
| 1  |   A   | 10000 | 1       |                    
| 2  |   B   | 60000 | 2       |                    
| 3  |   C   | 80000 | 2       |                    
| 4  |   D   | 40000 | 1       | 
| 5  |   E   | 70000 | 1       |                       
| 6  |   F   | 80000 | 2       |                       
| 7  |   G   | 40000 | 1       |                       
| 8  |   H   | 50000 | 1       |                       
+----+-------+-------+---------+ 

+----+---------+ 
|   Company    |   
+----+---------+ 
| Id | Name    | 
+----+---------+ 
| 1  | baidu   | 
| 2  | alibaba | 
+----+---------+ 
                 
+---------+-----------+-------+------+                  
|                  目标结果           |                       
+---------+-----------+-------+------+                   
| Company | Programmer| Pay   | Rank |                  
+---------+-----------+-------+------+                                         
| baidu   |   E       | 70000 |   1  | 
| baidu   |   H       | 50000 |   2  | 
| baidu   |   D       | 40000 |   3  | 
| baidu   |   G       | 40000 |   3  |
| alibaba |   C       | 80000 |   1  |
| alibaba |   F       | 80000 |   1  | 
| alibaba |   B       | 60000 |   2  | 
+---------+-----------+-------+------+ 

问题分析见这里简单分析一条mysql语句查询top数据

本文首发于公众号:天空的代码世界,微信号:tiankonguse
如果你想留言,可以在微信里面关注公众号进行留言。

关注公众号,接收最新消息

tiankonguse +
穿越