我有一个简单的SQL语句,如下所示,我想嵌套聚合函数SUM
和MIN
:
SELECT SUM(MIN(r1.price))
FROM rounds r1, rounds r2
WHERE r1.round ='1'
AND r1.market = r2.market
AND r1.round = r2.round
AND r1.name = r2.name
GROUP BY market
不幸的是,这不起作用。
答案 0 :(得分:4)
尝试:
SELECT SUM(lowest_price) FROM
(SELECT MIN(r1.price) AS lowest_price
FROM rounds r1
INNER JOIN rounds r2 ON r1.market = r2.market
AND r1.round = r2.round
AND r1.name = r2.name
WHERE r1.round ='1'
GROUP BY r1.market) innerSElect
答案 1 :(得分:1)
如果您选择的服务器产品的SQL风格支持排名功能,您还可以使用如下查询:
SELECT SUM(price)
FROM (
SELECT
r1.price,
ROW_NUMBER() OVER (PARTITION BY r1.market ORDER BY r1.price) AS rnk
FROM rounds r1
INNER JOIN rounds r2 ON r1.market = r2.market
AND r1.round = r2.round
AND r1.name = r2.name
WHERE r1.round = '1'
) s
WHERE rnk = 1