您好,我想知道什么是正確的方法,我被要求提供有關去世最年長的藝術家的資訊。
FROM ListOfArtists
WHERE (DateDeceased - DateofBirth) = (SELECT
MAX(DateDeceased - DateofBirth)
FROM ListOfArtists);
或者:
SELECT *
FROM ListOfArtists
ORDER BY (DateDeceased - DateofBirth) DESC
LIMIT 1
提前致謝!
uj5u.com熱心網友回復:
如果我完全過度考慮這一點,我深表歉意,但我無法抗拒指出這一點。
你的第一條評論表明你只存盤出生和死亡的年份 -
| 藝術家ID | 姓 | 名 | 國籍 | 逝世日期 | 出生日期 |
|---|---|---|---|---|---|
| 1 | 波提切利 | 桑德羅 | 意大利語 | 1510 | 1445 |
| 2 | 達芬奇 | 萊昂納多 | 意大利語 | 1519 | 1452 |
| 3 | 博納羅蒂 | 米開朗基羅 | 意大利語 | 1564 | 1475 |
| 4 | 博內斯特爾 | 切斯利 | 美國人 | 1986年 | 1888年 |
| 5 | 夏加爾 | 馬克 | 法語 | 1985年 | 1887年 |
您的第一個查詢 -
SELECT *
FROM ListOfArtists
WHERE (DateDeceased - DateofBirth) = (SELECT
MAX(DateDeceased - DateofBirth)
FROM ListOfArtists);
回傳 -
| 藝術家ID | 姓 | 名 | 國籍 | 逝世日期 | 出生日期 |
|---|---|---|---|---|---|
| 4 | 博內斯特爾 | 切斯利 | 美國人 | 1986年 | 1888年 |
| 5 | 夏加爾 | 馬克 | 法語 | 1985年 | 1887年 |
您的第二個查詢 -
SELECT *
FROM ListOfArtists
ORDER BY (DateDeceased - DateofBirth) DESC
LIMIT 1
回傳 -
| 藝術家ID | 姓 | 名 | 國籍 | 逝世日期 | 出生日期 |
|---|---|---|---|---|---|
| 5 | 夏加爾 | 馬克 | 法語 | 1985年 | 1887年 |
現在考慮您的表格的以下版本,但存盤完整的出生和死亡日期 -
| 藝術家ID | 姓 | 名 | 國籍 | 逝世日期 | 出生日期 |
|---|---|---|---|---|---|
| 1 | 波提切利 | 桑德羅 | 意大利語 | 1510-05-17 | 1445-01-01 |
| 2 | 達芬奇 | 萊昂納多 | 意大利語 | 1519-05-02 | 1452-04-15 |
| 3 | 博納羅蒂 | 米開朗基羅 | 意大利語 | 1564-02-18 | 1475-03-06 |
| 4 | 博內斯特爾 | 切斯利 | 美國人 | 1986-06-11 | 1888-01-01 |
| 5 | 夏加爾 | 馬克 | 法語 | 1985-03-28 | 1887-07-07 |
您的第一個查詢回傳 -
| 藝術家ID | 姓 | 名 | 國籍 | 逝世日期 | 出生日期 |
|---|---|---|---|---|---|
| 4 | 博內斯特爾 | 切斯利 | 美國人 | 1986-06-11 | 1888-01-01 |
您的第二個查詢回傳 -
| 藝術家ID | 姓 | 名 | 國籍 | 逝世日期 | 出生日期 |
|---|---|---|---|---|---|
| 4 | 博內斯特爾 | 切斯利 | 美國人 | 1986-06-11 | 1888-01-01 |
更好的查詢是 -
SELECT *
FROM ListOfArtists
ORDER BY DATEDIFF(DateDeceased, DateofBirth) DESC
LIMIT 1;
回傳 -
| 藝術家ID | 姓 | 名 | 國籍 | 逝世日期 | 出生日期 |
|---|---|---|---|---|---|
| 4 | 博內斯特爾 | 切斯利 | 美國人 | 1986-06-11 | 1888-01-01 |
以下查詢說明了兩者之間的區別 -
SELECT *, YEAR(DateDeceased) YearDied, YEAR(DateofBirth) YearBorn, (DateDeceased - DateofBirth), DATEDIFF(DateDeceased, DateofBirth) DaysOld, FLOOR(DATEDIFF(DateDeceased, DateofBirth) / 365.25) YearsOld
FROM ListOfArtists;
| 藝術家ID | 姓 | 名 | 國籍 | 逝世日期 | 出生日期 | 年死 | 出生年 | (死亡日期 - 出生日期) | 舊日 | 歲 |
|---|---|---|---|---|---|---|---|---|---|---|
| 1 | 波提切利 | 桑德羅 | 意大利語 | 1510-05-17 | 1445-01-01 | 1510 | 1445 | 650416 | 23876 | 65 |
| 2 | 達芬奇 | 萊昂納多 | 意大利語 | 1519-05-02 | 1452-04-15 | 1519 | 1452 | 670087 | 24487 | 67 |
| 3 | 博納羅蒂 | 米開朗基羅 | 意大利語 | 1564-02-18 | 1475-03-06 | 1564 | 1475 | 889912 | 32490 | 88 |
| 4 | 博內斯特爾 | 切斯利 | 美國人 | 1986-06-11 | 1888-01-01 | 1986年 | 1888年 | 980510 | 35955 | 98 |
| 5 | 夏加爾 | 馬克 | 法語 | 1985-03-28 | 1887-07-07 | 1985年 | 1887年 | 979621 | 35693 | 97 |
這是一個SQL 小提琴
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/394813.html
