SQL:与MN嵌套的SUM

时间:2011-12-08 11:26:08

标签: sql

我有一个简单的SQL语句,如下所示,我想嵌套聚合函数SUMMIN

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

不幸的是,这不起作用。

2 个答案:

答案 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