Oracle中Distinct与Order by的问题

我要实现的语句是先查出不重复的userid,然后再根据价格排序
select distinct user_id,product_price from 表1 order by product_price,但是如果是这样写的话,就会有重复的数据,那应该怎么写呢?

不能使用distinct会出现重复的user_id。
如果按
c209zhang朋友说的那样只能按下面语句,重复user_id全部排除掉才行。
select user_id,product_price from 表1 where user_id in
(select user_id from 表1 having count(user_id)=1 group by user_id)
order by product_price;
温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-09
最佳答案的意思是把重复的项全部去除一个不留。。。

去重的意思排除重复项仅留一个。
楼主的语句其实已经起作用了但是没达到最终目的,因为你的语句的语意是ID和价格列同时相同才认为是重复,光ID重复但价格重复时不满足去重条件,所以最后还是有重复ID
第2个回答  2012-07-27
写法是没问题的,关键是你一个user_id 是不是对应多个product_price嘛!
第3个回答  2012-07-27
select * from 表1 a
where rowid=(select min(rowid) from 表1 b where a.user_id=b.user_id)
order by product_price
第4个回答  2012-07-27
select user_id,product_price from 表1 group by user_id order by product_price;

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网