2012-02-13 5 views
0

最大の特定の属性を持つSQLでタプルをリストする方法を理解しようとしています。例えば、私はテーブルを持っていると言う:最大の特定アトリビュートでSQLでタプルを選択する方法

Cars(make, model, year, engineSize, pistonCapacity) 

と私は最大のピストン能力を持つタプル(複数可)をリストします。例えば

、我々が持って言うことができます:

Lexus, SC430 , 1997, 6, 3.8 
Ford , Mustang, 1986, 8, 5.0 
GMC , Denali , 2009, 8, 6.5 
Ford , F350 , 2009, 8, 6.5 

私はGMCデナリとフォードF350をリストしたいと思います。私はこのクエリを試しました:

SELECT make, model 
FROM Cars 
ORDER BY pistonCapacity DESC limit 1 

GMC Denaliだけが表示されます。

私は、このクエリを試してみました:

SELECT make, model 
FROM Cars 
HAVING MAX(pistonCapacity) 

が、運。

誰でも正しい方向に向けることができますか?

ご協力いただきありがとうございます。

+0

を行うことができますか? – Thilo

+0

@Thilo 'LIMIT 1'はMySQL –

+0

@ todda.speot.isです。必ずしもそうではありません。 PostgreSQLには、例えばそれがあります。 – Thilo

答えて

4
SELECT make, model 
FROM Cars 
WHERE pistonCapacity=(SELECT MAX(pistonCapacity) FROM Cars) 
1

あなたのRDBMSを指定していないが、Oracle(そしておそらく他のほとんど)で、あなたが使用しているどのようなデータベース

SELECT make, model 
FROM Cars 
WHERE pistonCapacity = (SELECT max(pistonCapacity) FROM Cars) 
+0

'LIMIT 1'はMySQL –

+0

@ todda.speot.isです。必ずしもそうではありません。 PostgreSQLには、例えばそれがあります。 – Thilo

0
SELECT 
     c.make, c.model 
FROM 
     Cars AS c 
    JOIN 
     (SELECT MAX(pistonCapacity) AS maxPistonCapacity 
     FROM Cars 
    ) AS cm 
    ON 
     cm.maxPistonCapacity = m.pistonCapacity 
関連する問題