葬空吟 2022-03-09 16:35 采纳率: 61.2%
浏览 54
已结题

关于SQL 数据提取个数的疑问!

使用的是MySQL数据库
原数据格式如下图所示:

img

想算抽检比例,并倒序排列,正常sql语句是:

SELECT `商品名`, `抽检个数`, `库存数量`,
concat( round(((SUM(`抽检个数`)/SUM(`库存数量`)) * 100 ), 3 ), '%' ) AS `抽检比例` 
FROM 表名
GROUP BY `商品名`
ORDER BY  `抽检比例` DESC

现在想取抽检比例低的,要包含所有 抽检比例 为 NULL 的商品,并且包含两个数值最低的商品,应该怎么写?
PS:直接 LIMIT 数量肯定是不行的,表数据是动态的,抽检比例 为 NULL 的商品个数不确定

  • 写回答

2条回答 默认 最新

  • DarkAthena ORACLE应用及数据库设计方案咨询师 2022-03-09 21:04
    关注

    其实就是取抽检个数为空的和排个序取前2的(nulls last,可是mysql没这个语法,用if和isnull处理成类似效果)

    select * from (
    select t.*,concat(round(抽检个数/库存数量*100,2),'%') 抽检率,
    row_number() over(order by IF(ISNULL(抽检个数),1,0) ,抽检个数/库存数量) rn from t) x
    where 抽检个数 is null or rn<=2
    

    从你发出来的这个样本数据里看,没有出现重复的商品,貌似不需要求和?

    img

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 3月17日
  • 已采纳回答 3月10日
  • 修改了问题 3月9日
  • 修改了问题 3月9日
  • 展开全部

悬赏问题

  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 CSAPPattacklab
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图
  • ¥15 stm32开发clion时遇到的编译问题
  • ¥15 lna设计 源简并电感型共源放大器