实现业务场景需求 代购商从外采购一批化妆品,总数量为30份。 现有一个用户需求登记表,记录每个用户需要代购的数量。 因为该批次采购不能完全覆盖所有登记用户的需求,现需要将已采购到货的商品尽可能发放给更多的用户。 按如下登记表,请使用一个SQL语句统计出可以发放的用户名单。 用户登记表(SHANHY_TEST) 用户编号(snum)需求数量(icount)S0012S0021S0031S0045S0058S0063S0074S0089S00910S01011S0115S0127 实现:查询SQL SELECT T2.SNUM,T2.ICOUNT FROM ( SELECT T1.SNUM,T1.ICOUNT,SUM(ICOUNT) OVER(PARTITION BY A ORDER BY ICOUNT ASC) S FROM ( SELECT 1 A,T.SNUM,T.ICOUNT FROM SHANHY_TEST_20181211 T ) T1 ) T2 WHERE T2.S <= 30 查询结果 用户编号(snum)需求数量(icount)S0021S0031S0012S0063S0074S0115S0045S0127