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
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
选出
以字段a分组,最小一组中(LAST 降序)所有记录中b的最大值
和
以字段a分组,最大一组中(FRIST 降序)所有记录中b的最大值看一下9i里的例子,FIRST 和LAST函数里
SELECT department_id,
MIN(salary) KEEP (DENSE_RANK FIRST ORDER BY commission_pct) "Worst",
MAX(salary) KEEP (DENSE_RANK LAST ORDER BY commission_pct) "Best"
FROM employees
GROUP BY department_id;
DEPARTMENT_ID Worst Best
------------- ---------- ----------
10 4400 4400
20 6000 13000
30 2500 11000
40 6500 6500
50 2100 8200
60 4200 9000
70 10000 10000
80 6100 14000
90 17000 24000
100 6900 12000
110 8300 12000
7000 7000用department_id分组,每组用commission_pct排序(分组),对每个department_id分组选出commission_pct分组中最小一组中salary的最小值,对每个department_id分组选出commission_pct分组中最大一组中salary的最大值
选出
以字段a分组,最小一组中(LAST 降序)所有记录中b的最大值
和
以字段a分组,最大一组中(FRIST 降序)所有记录中b的最大值看一下9i里的例子,FIRST 和LAST函数里
SELECT department_id,
MIN(salary) KEEP (DENSE_RANK FIRST ORDER BY commission_pct) "Worst",
MAX(salary) KEEP (DENSE_RANK LAST ORDER BY commission_pct) "Best"
FROM employees
GROUP BY department_id;
DEPARTMENT_ID Worst Best
------------- ---------- ----------
10 4400 4400
20 6000 13000
30 2500 11000
40 6500 6500
50 2100 8200
60 4200 9000
70 10000 10000
80 6100 14000
90 17000 24000
100 6900 12000
110 8300 12000
7000 7000用department_id分组,每组用commission_pct排序(分组),对每个department_id分组选出commission_pct分组中最小一组中salary的最小值,对每个department_id分组选出commission_pct分组中最大一组中salary的最大值