如何根据不同的值求值之和的最小值?
使用下表,试图弄清楚如何根据唯一 ID 找到最小的购买金额。
ID | UNITS_BOUGHT | UNIT_PRICE
----------------------------------
1 | 1 | 10.99
1 | 3 | 3.49
1 | 2 | 4.99
2 | 1 | 124.99
2 | 1 | 4.99
3 | 5 | 9.99
3 | 3 | 4.99
需要做的是先获取不同 ID 的总数,然后在不同的 ID 中找到最小的购买金额。购买金额的计算方法是:取 UNITS_BOUGHT,然后乘以 UNIT_PRICE,然后对每个 ID 的值求和。因此,在这种情况下,非重复 ID 总数为 3,最小购买金额为 31.44,即 ID 为 1 的金额。
IDs | MIN_PURCHASE
--------------------
3 | 31.44
但一直无法弄清楚如何显示最小的购买金额。这是代码:
SELECT COUNT(DISTINCT ID) AS 'IDs',
ROUND(MIN(SUM(UNITS_BOUGHT * UNIT_PRICE) = (
SELECT UNITS_BOUGHT * UNIT_PRICE
FROM TABLE
GROUP BY ID
)), 2) AS 'MIN_PURCHASE'
FROM TABLE;
上面的代码确实提供了“invalid use of group function error”,不完全确定为什么会这样。