暂无图片
sqlite中的group by函数如果换成oracle怎么用?
我来答
分享
暂无图片 匿名用户
sqlite中的group by函数如果换成oracle怎么用?

例如:sqlite中select * from ShortMessages group by Number 怎么在oracle中用

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
DarkAthena

其实你这种写法应该是要避免的,查询了所有字段,但是又要按中间一个字段做聚合,最后得到的数据是按这个字段去重,然后其他字段随机取某行的结果,这样会导致查询出来的数据不可控,同一个sql查询可能会出现不同的结果。

所以oracle里的group by 禁止此种写法,一旦使用了group by ,那么在select后面,只能接3种值,

  1. 常量(比如 ‘abc’、123、date’2021-12-21’等定值)
  2. 聚合表达式(SUM/AVG/COUNT等等)、
  3. group by 后面接的字段或者表达式

如果你的确是想按某个字段去重,但又要保留随机一条数据的所有字段,那就要使用开窗函数做分组了 ,比如

select t.* from (select row_number() over(partition by 去重字段 order by 去重字段 ) rn, t.* from t ) t where rn = 1
复制
暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
chengang


select min(…),min(…),number from ShortMessages group by number

select max(…),max(…),number from ShortMessages group by number

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Oracle 19C安装卡在引导界面,C盘无限输出临时文件日志,怎么解决?
回答 1
已采纳
重启操作系统,更换安装目录
有用于 Linux 安装的 PGAdmin 之类的 Oracle Web 工具吗?
回答 1
https://www.oracle.com/tools/downloads/sqldevdownloads.htmloracle官方下一个sqldeveloper就行,有linux版本的,尽量别用盗
生产环境(oracle11g)突然卡了几分钟,这种问题怎么分析?
回答 7
收集该时间段的awr和ash进行问题分析定位。
oracle视图v$active_session_history,dba_hist_active_session_history如何记录IP地址
回答 3
已采纳
https://juejin.cn/post/7000171666529583135看看这个,希望对你有所帮助
oracle12g存入的表数据存在乱码情况,各项编码配置都已是utf-8?
回答 3
原则上,和DB端字符集设置无关。一句话:NLSLANG里的NLSCHARCTERSET的设置,可以和DB端的NLSCHARCTERSET不一致(因为与DB端交互时,系统会自动做字符集转换),但必须和O
怎么查看oracle系统时间?
回答 2
已采纳
先格式化一下时间,然后用sysdate函数即可查看,当然你需要使用TNS远程连接上才可以看时区是否正确。sqlplussys/oracle@IP:1521/prodassysdbaSQL>alt
ASM数据盘冗余模式修改
回答 2
谢谢章老师
请问,我在某张表上建了一个索引,可是执行计划并没有走这个索引,这是为什么?
回答 4
可能是发生了转换没法走,也可能是统计信息或数据分布导致CBP认为不该走,又或者不走索引反而更快。建议先看看执行计划,然后加hint提示走索引,再看看执行计划
Oracle:现在有50个线程分别读50张表,在一个8核心的服务器上运行的时候发现有一些线程的执行几率可能很低
回答 1
如果你每个线程都很高效,CPU马上释放了。如果都不高,那么CPU使用率超过50%就是出现等等了,越往后越严重。这就是为什么100%的时候你干什么都不行,甚至登录到操作系统都不行。如果每个线程一直长时间
OACLE EBS 是什么架构?BS?CS?
回答 5
已采纳
EBS有db层和应用层,db层用的自家的Oracle数据库,应用层会有一系列中间件,提供对外服务,用户通过浏览器登录EBS系统。所以算是BS架构吧