でレコードを取得:MySQLの - 私は私のMySQLデータベースに以下のようなテーブルをした最大値
employee
-------------------------
id name num
1 Jack 1
2 John 1
3 Jack 2
4 Steve 1
5 Jack 3
6 Steve 2
7 Carol 1
私がやりたい事は、最も高い「NUM」値と名前を取得することです。例えば
:あり
5 Jack 3
つ以上のレコードが、ジャックという名前が、私は最大の「NUM」の値を持つものを取得したいです。
私は下のクエリを使用しようとしました:
SELECT MAX(num),id,name FROM `employee`
しかし、それは最初のレコード(最初の「ジャック」)が、最新のnum個のIDと名前を返します。もちろん
MAX(num) id num
-----------------------
3 1 Jack
私は「で注文」を使用しようとすることができますが、私はまた、最も高い値を持つのみレコードを取得します。
SELECT num,id,name FROM `employee` order by num desc
このクエリは、小さいものも含めてすべてのレコードも返します。
id name num
-------------------------
3 5 Jack
2 3 Jack
2 6 Steve
1 1 Jack
1 2 John
1 4 Steve
1 7 Carol
名前でグループ化しようとすると、名前でグループ化されたレコードが返されますが、再び小さなレコードのみが返されます。最初の最小レコードを
SELECT num,id,name FROM `employee` group by name order by num desc
SELECT * FROM
(
select * from `employee` order by num desc
) as employee_tmp
group by name
order by num desc
再び、基:
以下のクエリの両者は同じ結果を与えます。
id name num
1 Jack 1
2 John 1
4 Steve 1
7 Carol 1
あなたの目的を解決する必要がありますか?私はすべての人に最高の価値を求めています。 「3番のジャック」「2番のスティーブ」 – amone
@amoneのように、もう一度確認してください。私の答えは更新されました。 – cars10m