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

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

  •  
  •   cage111 · 2023-06-07 14:40:33 +08:00 · 1549 次点击
    这是一个创建于 540 天前的主题,其中的信息可能已经有所发展或是发生改变。

    需求是对 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  
       2023-06-07 14:48:22 +08:00
    数据不匹配或者隐式转换?
    DOMO
        2
    DOMO  
       2023-06-07 15:38:14 +08:00
    把 count 结果导出来手动加加看呢
    HankAviator
        3
    HankAviator  
       2023-06-07 22:10:19 +08:00
    ZJ/CKSL 的值拉出来看看?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1092 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 19:35 · PVG 03:35 · LAX 11:35 · JFK 14:35
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.