2016-08-12 7 views
0

私は、次の表列内で最大値を持つ行を選択するにはどうすればよいですか?

table_code  table_family  aa 
--------------------------------------- 
F90     OT   49 
F93     OT    1 
F92     OT    1 

を持って、私は次のようになる見たい:

F90    OT    49 

私は、次のSQL試してみました:これは動作しませんでした

SELECT 
    table_code, MAX(table_family) table_family, aa 
FROM 
    (SELECT 
     table_code, table_family, COUNT(*) aa 
    FROM 
     table1 
    GROUP BY 
     table_code, table_family) 
GROUP BY 
    table_code, AA 

を。

誰でもお手伝いできますか?

+4

あなたはどのようなRDBMSを使用しているの? – Mureinik

答えて

5
SELECT TOP(1) table_code, table_family, aa 
FROM table1 
ORDER BY aa DESC 
0

返される行が1つであるか、最大値を含むすべての行を探していますか?おそらくあなたの実際のテーブルには3つ以上の行が含まれていますか?

SELECT * 
FROM table1 
WHERE aa = (SELECT MAX(aa) FROM table1) 
0

次のコードを試してみてください。

SELECT TOP 1 * 
FROM table1 
ORDER BY aa DESC 
+1

注文はDESCである必要があります –

+0

ありがとう@JonathanWillcockあなたは正しいです。私は私の答えを投稿するとすぐに実現しました。すでに更新されています。私が鉱山を提出したあともあなたの投稿を見ただけです。 –

0
SELECT * FROM table WHERE aa = (SELECT MAX(aa) FROM table); 
関連する問題