2017-11-05 10 views
0

私は、異なる乗客の種類によってグループ化されたすべての乗客のtotalFareを返すネストされたクエリを持っています。ネストされたクエリから最大値を選択

SELECT PASSNGR.type , sum(FARE.fee) AS totalFare 
    FROM Passenger AS PASSNGR 
    JOIN Fare AS FARE ON (PASSNGR.type = FARE.type) 
    GROUP BY PASSNGR.type 
    ORDER BY totalFare DESC 

私は最大(totalFare)で行を選択する方法を理解しようとしています。私は周りを見回しましたが、ほとんどの場合、定義されたテーブルから最大値を選択しています。ここでは、乗客の種類ごとにtotalFareを生成するネストされたクエリを使用しています。

最初の選択の前にもう一度Select MAX(totalFare)をネストしようとしましたが、タイプだけでなくmaxの値も返します。

SELECT MAX(totalFare) 
    FROM (SELECT PASSNGR.type , sum(FARE.fee) AS totalFare 
      FROM Passenger AS PASSNGR 
      JOIN Fare AS FARE ON (PASSNGR.type = FARE.type) 
      GROUP BY PASSNGR.type ORDER BY totalFare) 
+0

[タグ:最大n個のグループ]タグは、このような質問専用です。タイプ1の合計運賃が$ 5000で、タイプ2の合計運賃が$ 5000であれば、あなたは答えとして何を望みますか? –

答えて

1

これは適切ですか?

SELECT p.type, sum(f.fee) AS totalFare 
FROM Passenger p JOIN 
    Fare f 
    ON p.type = f.type 
GROUP BY p.type 
ORDER BY totalFare DESC 
FETCH FIRST 1 ROW ONLY; 

私はJOINが必要ではないことに注意してください。できるよ;

SELECT f.type, sum(f.fee) AS totalFare 
FROM Fare f 
GROUP BY f.type 
ORDER BY totalFare DESC 
FETCH FIRST 1 ROW ONLY; 
関連する問題