V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cage111
V2EX  ›  程序员

对 count(*)结果进行 sum 操作为啥会有小数

  •  
  •   cage111 · 326 天前 · 1399 次点击
    这是一个创建于 326 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求是对 SPBM 、SPMC 分组,计算 ZJ/CKSL 最小值及其条数,最大值及其条数, 使用的数据库 Oracle 。

    SELECT SPBM,SPMC,  round( MIN(DJ),5) AS MIN_DJ, sum(CASE WHEN min_rn = 1 THEN sl ELSE 0 END) AS MIN_SL, round( MAX(DJ),5) AS MAX_DJ, sum(CASE WHEN max_rn = 1 THEN sl ELSE 0 END) AS MAX_SL from 
    (
      SELECT SPBM, SPMC, ZJ/CKSL as DJ , count(*) as sl,
             ROW_NUMBER() OVER (PARTITION BY SPBM,SPMC  ORDER BY ZJ/CKSL  ASC) AS min_rn,
             ROW_NUMBER() OVER (PARTITION BY SPBM,SPMC ORDER BY ZJ/CKSL  DESC) AS max_rn
      FROM SP 
      GROUP BY SPBM, SPMC,ZJ/CKSL  
      )
     WHERE min_rn = 1 OR max_rn = 1 
    GROUP BY SPBM,SPMC
    

    从运维导出的结果 excel 里发现 MIN_SL,MAX_SL 这两个数量存在小数,不知道为啥?

    3 条回复    2023-06-07 22:10:19 +08:00
    Paracosm
        1
    Paracosm  
       326 天前
    数据不匹配或者隐式转换?
    DOMO
        2
    DOMO  
       326 天前
    把 count 结果导出来手动加加看呢
    HankAviator
        3
    HankAviator  
       325 天前
    ZJ/CKSL 的值拉出来看看?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3136 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 13:25 · PVG 21:25 · LAX 06:25 · JFK 09:25
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.