您好,我想知道什么是正确的方法,我被要求提供有关去世最年长的艺术家的信息。
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 小提琴
0 评论