2017-10-26 11 views
0

:特定のstudentId考えるテーブルの列の最大値を取得する方法は?私は、次の表を持っている

FILEID、studentId、

、どのように私はテーブルにある最大のFILEIDを得ることができますか? 私は、この他のクエリを見た:

SELECT row 
FROM table 
WHERE id=(
    SELECT max(id) FROM table 
    ) 

これはidが最大である行を与えるだろう。しかし、与えられた生徒IDの最大のIDはどうですか?内部クエリまたは外部クエリで生徒を照合する方が良いでしょうか?

+1

'私は自分自身が明らかにされていないと思うところFILEIDのDESCの制限によってstudentId = your_known_idため1' –

+0

@Igorなしのテーブルから選択*をうまくいくと思います... studentId = 3の行が3つありますが、fileId = {4,5,6}の場合、{fileId、studentId} = {6,3} –

答えて

1

select * from table where studentId = your_known_id order by fileId desc limit 1 
1

これは、最も簡単なようだ:

SELECT studentId, MAX(ID) 
FROM TableA 
GROUP BY studentId 

ORでフィルタリングオプション:

WITH CTE AS 
(
SELECT studentId, MAX(ID) 
FROM TableA 
GROUP BY studentId 
) 
SELECT * FROM CTE WHERE studentId ... 
1

...何与えられた学生証

SELECT MAX(fileId) 
FROM table 
WHERE studentId = 123 
の最大のIDについて

ここで、123はthあなたがフィルタリングしたい場合はe生徒です。


がstudentId = 3で三行があると言うが、FILEIDの= {4,5,6}と、どのように{FILEID、studentIdを}行を取得するか= {6,3}

あなたが全体の行が必要な場合
SELECT MAX(fileId), studentId 
FROM table 
WHERE studentId = 3 
GROUP BY studentId 
1

はこれを試してみてください:

SELECT * 
FROM (
SELECT 
id, 
ROW_NUMBER() OVER (PARTITION BY studentId ORDER BY id desc) rnk 
FROM table) a 
WHERE a.rnk = 1; 
1

私は、このコードは、同様

SELECT max(field) from table_name where studenId = <someID> 
関連する問題