查找最大(日期)而不考虑其他列
Finding the max(date) irrespective of other columns
下面有一个像table
表 1
Id | Name | Date
1 A 11.12.2018
2 B 12.12.2018
3 C 13.01.2017
4 D 15.06.2019
5 E 21.05.2019
表 2
Id | Marks
1 50
2 79
3 90
4 95
5 92
我想 select 所有标记 > 80 的记录,我想显示所有 selected 记录的最大(日期)。期望输出应该像
Id | Name | Date
3 C 15.06.2019
4 D 15.06.2019
5 E 15.06.2019
由于我是 sql 和 teradata 的新手,所以略有障碍。感谢您的宝贵时间和帮助
提前致谢。
这是我厌倦的查询,
SELECT a.Id, a.name , max(a.date)
FROM Table1 as a , Table2 as b
WHERE a.Id = b.Id
AND b.Marks > 80
使用 MAX
作为整个 table 的分析函数,并更正您的连接语法:
SELECT
a.Id,
a.name,
MAX(a.date) OVER () AS max_date
FROM Table1 a
INNER JOIN Table2 b
ON a.Id = b.Id
WHERE
b.Marks > 80;
上述方法的替代方法是使用子查询查找整个 table:
的最大日期
SELECT
a.Id,
a.name,
(SELECT MAX(a.date)
FROM Table1 a INNER JOIN Table2 b ON a.Id = b.id
WHERE b.Marks > 80) AS max_date
FROM Table1 a
INNER JOIN Table2 b
ON a.Id = b.Id
WHERE
b.Marks > 80;
下面有一个像table
表 1
Id | Name | Date
1 A 11.12.2018
2 B 12.12.2018
3 C 13.01.2017
4 D 15.06.2019
5 E 21.05.2019
表 2
Id | Marks
1 50
2 79
3 90
4 95
5 92
我想 select 所有标记 > 80 的记录,我想显示所有 selected 记录的最大(日期)。期望输出应该像
Id | Name | Date
3 C 15.06.2019
4 D 15.06.2019
5 E 15.06.2019
由于我是 sql 和 teradata 的新手,所以略有障碍。感谢您的宝贵时间和帮助
提前致谢。
这是我厌倦的查询,
SELECT a.Id, a.name , max(a.date)
FROM Table1 as a , Table2 as b
WHERE a.Id = b.Id
AND b.Marks > 80
使用 MAX
作为整个 table 的分析函数,并更正您的连接语法:
SELECT
a.Id,
a.name,
MAX(a.date) OVER () AS max_date
FROM Table1 a
INNER JOIN Table2 b
ON a.Id = b.Id
WHERE
b.Marks > 80;
上述方法的替代方法是使用子查询查找整个 table:
的最大日期SELECT
a.Id,
a.name,
(SELECT MAX(a.date)
FROM Table1 a INNER JOIN Table2 b ON a.Id = b.id
WHERE b.Marks > 80) AS max_date
FROM Table1 a
INNER JOIN Table2 b
ON a.Id = b.Id
WHERE
b.Marks > 80;