我創建了下表。max()函數
create table man(id integer, name varchar(20), city varchar(20), age integer)
我想查找最大年齡的人的姓名。
所以,我跑下面的查詢,
select name, max(age) from man group by name;
它顯示所有的人按升序隨着年齡的名稱。出了什麼問題?
我創建了下表。max()函數
create table man(id integer, name varchar(20), city varchar(20), age integer)
我想查找最大年齡的人的姓名。
所以,我跑下面的查詢,
select name, max(age) from man group by name;
它顯示所有的人按升序隨着年齡的名稱。出了什麼問題?
如果你想獲得與年齡更大的人,你可以這樣做:
select name, age from man order by age desc limit 1;
對於查詢與SQL Server的工作:
select top 1 name, age from man order by age desc;
您的查詢正在做其他事情。 max
使用您的group
子句進行計算。由於您是按名稱分組的,因此max(age)
是具有相同名稱的人的最大年齡。
選擇名稱。最大(年齡)來自人名;
應該是
SELECT name,max(age)FROM man GROUP BY name;
您也可以嘗試
SELECT姓名,年齡從人的ORDER BY DESC年齡
也許你正期待將是有益的結果多一點的信息?
我很難理解你在這裏做什麼。一個人在你的模型中可以有多於一個年齡?
無論如何。如果你想在表man
的最高年齡,你需要運行:
select max(age) from man
現在,這是誰?如果將name
添加到查詢中,則數據庫引擎將返回所有名稱(因爲您要求所有名稱,而不是特定名稱;組合將無法幫助,因爲大多數名稱已經被忽略)與最大值相結合。 age
列的值。
你需要的是一個子查詢:
select m1.name
from man m1
where m1.age = (
select max(m2.age)
from man m2
)
這將選擇所有元素,其中年齡是一樣的,在設定的最高年齡。
不介意這個評論...我錯了 – krtek
男人實際上包含什麼?一個人的最大年齡是多少?我只知道同一個年齡段的人。 –
似乎我終於明白你在問什麼。試着相應地編輯你的問題。 –