假设我提取了一些数据。
例如:
SELECT A, date
FROM table
我只想获取每个A值下日期最大的记录。我可以这样写:
SELECT A, col_date
FROM TABLENAME t_ext
WHERE col_date = (SELECT MAX (col_date)
FROM TABLENAME t_in
WHERE t_in.A = t_ext.A)
但我的查询语句非常长... 是否有更紧凑的方法使用分析函数来实现相同的功能?
TABLENAME
中有两行具有相同的A
值和相同的SOME_DATE_COLUMN
值,则会发生绑定。您的原始查询将返回这两行,我的查询也将返回这两行。另一方面,如果您使用ROW_NUMBER
函数,则只会返回其中一行(尽管选择返回哪一行是任意的)。 - Justin Cave