匿名用户sqlite中的group by函数如果换成oracle怎么用?
例如:sqlite中select * from ShortMessages group by Number 怎么在oracle中用
我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
匿名用户例如:sqlite中select * from ShortMessages group by Number 怎么在oracle中用
其实你这种写法应该是要避免的,查询了所有字段,但是又要按中间一个字段做聚合,最后得到的数据是按这个字段去重,然后其他字段随机取某行的结果,这样会导致查询出来的数据不可控,同一个sql查询可能会出现不同的结果。
所以oracle里的group by 禁止此种写法,一旦使用了group by ,那么在select后面,只能接3种值,
如果你的确是想按某个字段去重,但又要保留随机一条数据的所有字段,那就要使用开窗函数做分组了 ,比如
select t.*
from (select row_number() over(partition by 去重字段 order by 去重字段 ) rn,
t.*
from t ) t
where rn = 1
评论
有用 0
墨值悬赏