点击关注公众号,SQL干货及时获取
后台回复:1024,获取海量学习资源 SQL刷题专栏 SQL145题系列
大家注意:因为微信改了推送机制,会有小伙伴刷不到当天的文章,一些比较实用的知识和信息,错过了就是错过了。所以建议大家加个星标
,就能第一时间收到推送了。
题目
G0809表包含所有员工,其中有三列:员工Id,公司名和薪水。
请编写SQL查询来查找每个公司的薪水中位数。
挑战点:你是否可以在不使用任何内置的SQL函数的情况下解决此问题。

中位数:
若记录数为奇数,取一条,否则取两条,如记录数为7,按顺序直接取第4名即是中位数, 记录数为6,按顺序则是第3,4名是中位数。
测试数据
CREATE TABLE G0809
(
ID INT,
Company VARCHAR(10),
Salary INT
)
INSERT INTO G0809 VALUES
(1,'A',8341),
(2,'A',9410),
(3,'A',10050),
(4,'A',15314),
(5,'A',8451),
(6,'A',9513),
(7,'B',10005),
(8,'B',13000),
(9,'B',11540),
(10,'B',10345),
(11,'B',12210),
(12,'B',9234),
(13,'C',12000),
(14,'C',8900),
(15,'C',9000),
(16,'C',10100),
(17,'C',8000)
参考答案
应读者的要求,我将参考答案公布了,有需要的同学可以在下方公众号「数据前线」(非本号)后台回复关键字:G0809,即可获取。还是建议先独立答题~
数据前线
后台回复关键字:1024,获取一份精心整理的技术干货 后台回复关键字:进群,带你进入高手如云的交流群。 推荐阅读
文章转载自SQL数据库开发,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。








