for example:
15:18:59 SQL> create table t1 (a int, b int);
表已创建。
已用时间: 00: 00: 00.15
15:18:59 SQL>
15:18:59 SQL> insert into t1 values (1,5);
已创建 1 行。
已用时间: 00: 00: 00.16
15:18:59 SQL> insert into t1 values (1,3);
已创建 1 行。
已用时间: 00: 00: 00.16
15:18:59 SQL> insert into t1 values (1,4);
已创建 1 行。
已用时间: 00: 00: 00.15
15:18:59 SQL> insert into t1 values (2,1);
已创建 1 行。
已用时间: 00: 00: 00.16
15:18:59 SQL> insert into t1 values (2,3);
已创建 1 行。
已用时间: 00: 00: 00.00
15:18:59 SQL>
15:18:59 SQL> SELECT
15:18:59 2 max(b) KEEP (DENSE_RANK LAST ORDER BY (a) desc) AS last,
15:18:59 3 max(b) KEEP (DENSE_RANK FIRST ORDER BY (a) desc) AS first
15:18:59 4 FROM t1;
LAST FIRST
---------- ----------
5 3
已用时间: 00: 00: 00.00
SQL含义:
选出
以字段a分组,最小一组中(LAST 降序)所有记录中b的最大值
和
以字段a分组,最大一组中(FRIST 降序)所有记录中b的最大值