select distinct(activityname) from tb1 where processid = '9567' 取出来了不重复数据但是我有另外一个CNTID(数字型)字段,是控制activityname字段的顺序的,上面这个语句取出来的数据不能按照CNTID从大到小的顺序排序。
select distinct(activityname),cnt from tb1 where processid = '9567' order by cnt
这句话能查出来但是activityname字段的值又是所有的值了,
怎么才能取出来activityname字段不重复的值并且按CNTID字段的顺序排序?
...全文
58011打赏收藏
关于oracle distinct语句排序的问题,谁熟悉,进来看看
select distinct(activityname) from tb1 where processid = '9567' 取出来了不重复数据但是我有另外一个CNTID(数字型)字段,是控制activityname字段的顺序的,上面这个语句取出来的数据不能按照CNTID从大到小的顺序排序。 select distinct(activityname),cnt from tb1 where processid = '9567' order by cnt 这句话能查出来但是activityname
[Quote=引用 6 楼 xiaohu8855 的回复:]
楼主,可以结贴了吧,这个可以实现
select max(cnt) cnt,activityname
from tb1
where processid = '9567'
group by activityname
order by cnt
[/Quote]支持了,也可以用min、not exists实现
select activityname,cnt
from(
select activityname,cnt,row_number()over(partition by activityname order by cnt) num
from tb1
processid = '9567'
) where num=1;