请选择 进入手机版 | 继续访问电脑版

mysql 取并列前10,不去重

[复制链接]
科达工艺 发表于 2020-12-31 19:00:40 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
一、问题
在 基于jira的缺陷自动化报表分析 (四)按人员统计缺陷情况 一文中,我们创建了一张表统计开发人员的缺陷情况。
现在,我们需要根据这张表查询到单日引入缺陷数量前十的人员,如果引入数量一样多,不去重,全部查询出来。

order by、limit 10 看上去很简单,一顿操作,效果却只有前5的引入数量,因为有重复的
 
二、办理
1、先找到排名第10的引入数量是多少(按数量分组后 limit 9,1 查到第10的引入数量),然后查询大于便是该数量的开发人员和引入数量
SELECT b.assign_name,b.introduce_amount 
FROM daily_assign_bug b 
WHERE b.introduce_amount >=
(
        SELECT introduce_amount 
        FROM daily_assign_bug 
        GROUP BY introduce_amount 
        ORDER BY introduce_amount DESC 
        LIMIT 9,1
) ORDER BY b.introduce_amount DESC
;

此时,我们发现前10的数量的人有65个了
 
(2)查到前10的所有引入数量,然后对原始表用 in 过滤
SELECT b.assign_name,b.introduce_amount 
FROM daily_assign_bug b 
WHERE b.introduce_amount IN
(
        SELECT introduce_amount 
        FROM daily_assign_bug 
        GROUP BY introduce_amount 
        ORDER BY introduce_amount 
        DESC LIMIT 10
) ORDER BY b.introduce_amount DESC
;


来源:https://blog.csdn.net/kk_gods/article/details/111991856
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

发布主题

专注素材教程免费分享
全国免费热线电话

18768367769

周一至周日9:00-23:00

反馈建议

27428564@qq.com 在线QQ咨询

扫描二维码关注我们

Powered by Discuz! X3.4© 2001-2013 Comsenz Inc.( 蜀ICP备2021001884号-1 )