データベースから最年長の人の名前と年齢を表示することになっています。私が使用したコードには、名前と数人の計算された年齢が表示されますが、1人の最年長の人は表示されません。これを機能させるにはどうすればよいですか?これが私のコードです
select dr_drvname as "Name", trunc(max((sysdate-dr_brthdate)/365)) as "Highest AGE"
from driver,dual
group by dr_drvname;
データベースから最年長の人の名前と年齢を表示することになっています。私が使用したコードには、名前と数人の計算された年齢が表示されますが、1人の最年長の人は表示されません。これを機能させるにはどうすればよいですか?これが私のコードです
select dr_drvname as "Name", trunc(max((sysdate-dr_brthdate)/365)) as "Highest AGE"
from driver,dual
group by dr_drvname;
Another way in Oracle would be something like:
SELECT
dr_drvname AS "Name",
trunc(months_between(sysdate, dr_birthdate) / 12) AS "Highest Age"
FROM
(
SELECT
dr_drvname,
dr_birthdate
FROM
driver
ORDER BY
dr_birthdate
)
WHERE
ROWNUM = 1;
次のようなものを試してください。
SELECT top 1
Firstname, LastName, Max([BirthDate]) as Oldest
FROM [Employees]
group by BirthDate, FirstName, LastName
注:複数の人が同じ誕生日を持っている場合の要件は何ですか?
分析関数を使用できます
select dr_drvname as "Name",
trunc( months_between( sysdate, dr_birthdate )/ 12 ) "Highest Age"
from (select dr_drvname ,
dr_birthdate,
rank() over (order by dr_birthdate) rnk
from driver)
where rnk = 1;