-- 思路就是把id弄成小数点,使所有值变成唯一
-- 值很大的情况可能不适用,我的数据较小
cast( -- cast开始
( -- 计算开始
(
sum(DISTINCT concat(replace(cast(price * 100 as CHAR),'.00',''), '.', id))
-
sum(DISTINCT concat('0.', id))
) / 100
) -- 计算结束
as DECIMAL(9,2)) -- cast结束
as amount