我的表中的数据如下:
命名varchar2(10), 金额数量(2)
名称 | 金额 |
---|---|
B | 2 |
B | 2 |
A | 1 |
A | 1 |
C | 3 |
C | 3 |
C | 4 |
C | 5 |
C | 5 |
C | 5 |
我怎样才能实现以下两种可能的结果:
名称 | 金额 |
---|---|
A | 1 |
B | 2 |
C | 3 |
名称 | 金额 | 排名 |
---|---|---|
A | 1 | 1 |
A | 1 | 1 |
B | 2 | 2 |
B | 2 | 2 |
C | 3 | 3 |
C | 3 | 3 |
C | 4 | 3 |
C | 5 | 3 |
C | 5 | 3 |
C | 5 | 3 |
我试过了:
选择名称
,数量
,dense_RANK() OVER(按名称分区 ORDER BY 金额)AS NEW_ID
从
(
选择不同的名称
,数量
来自测试表
);
但只能得到:
名称 | 金额 |
---|---|
A | 1 |
B | 2 |
C | 3 |
C | 3 |
C | 3 |
对于我尝试过的第二个问题
选择名称
,数量
,dense_RANK() OVER(按金额排序)AS NEW_ID
来自测试表
;
但只能得到:
名称 | 金额 | 排名 |
---|---|---|
A | 1 | 1 |
A | 1 | 1 |
B | 2 | 2 |
B | 2 | 2 |
C | 3 | 3 |
C | 3 | 3 |
C | 4 | 4 |
C | 5 | 5 |
C | 5 | 5 |
C | 5 | 5 |
请帮助我获得想要的结果集。
第一个很简单
Select ename, min(amount) as amount
From table
Group by ename
第二个我稍后会在电脑前查看