oracle过滤重复数据,并排序问题。

Spr_Perfei 2009-12-19 02:58:14
A表:
a b c
------------------
a1 b1 1
a1 b2 2
a2 b3 3
a2 b4 4
a3 b5 5

我想要的查询结果是,过滤 a 列的重复数据,并且按 c 列来排序

a
----
a3
a2
a1

请问该 怎么实现。
谢谢。
...全文
451 9 打赏 收藏 举报
写回复
9 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
BenChiM888 2009-12-19
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 spr_perfei 的回复:]
BenChiM888的有错误啊。

不是SELECTed表达式。
[/Quote]

抱歉。。。

select a from(
select a,max(c) c
from A表
group by a)
order by c;

select a from(
select a,max(c) c
from A表
group by a)
order by c desc;

crazylaa 2009-12-19
  • 打赏
  • 举报
回复
如果按a对应的最大的c来排:
select t.a from (select a,max(c)as c from tbl group by a) t order by t.c desc;
如果按a对应的最小的c来排:
select t.a from (select a,min(c)as c from tbl group by a) t order by t.c desc;
Spr_Perfei 2009-12-19
  • 打赏
  • 举报
回复
ACMAIN_CHM 我不太清楚 你说的按照哪个 C 排,这句话是什么意思。

C列中没有重复的值。

可不可以 先查询出 过滤掉重复A的列,和 C列,然后再按C 来排序呢?

select a,c from (select distinct a,c from A表) order by c desc ????

select distinct a,c from A表 这句话过滤不掉重复的, 请教。。
ACMAIN_CHM 2009-12-19
  • 打赏
  • 举报
回复
如果以C,则楼主需要定义清楚你按照哪个C排? 比如下面这个顺序是什么?

A表:
a b c
------------------
a1 b1 1
a2 b3 2
a2 b4 2
a3 b5 3
a1 b2 4
Spr_Perfei 2009-12-19
  • 打赏
  • 举报
回复
BenChiM888的有错误啊。

不是SELECTed表达式。

BenChiM888 2009-12-19
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 spr_perfei 的回复:]
是按 c 列来排序啊。
不是按  a 列
[/Quote]


select distinct a
from A表
order by c;

select distinct a
from A表
order by c desc;
Spr_Perfei 2009-12-19
  • 打赏
  • 举报
回复
是按 c 列来排序啊。
不是按 a 列
ACMAIN_CHM 2009-12-19
  • 打赏
  • 举报
回复
哦是低序

select distinct a
from A表
order by a desc
ACMAIN_CHM 2009-12-19
  • 打赏
  • 举报
回复
select distinct a
from A表
order by a;
相关推荐
发帖
Oracle 高级技术

3472

社区成员

Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
帖子事件
创建了帖子
2009-12-19 02:58
社区公告
暂无公告