Oracle SQL – 在WITH子句中使用ROWNUM进行分组?
发布时间:2021-02-20 18:25:19 所属栏目:站长百科 来源:网络整理
导读:我正在尝试让数据库中的用户拥有数据库中最大段的所有权.为此,我正在尝试: SELECT owner,MAX(bytes) FROM SYS.DBA_SEGMENTSGROUP BY ownerHAVING ROWNUM = 1; 但是,这会返回“不是GROUP BY表达式”.为什么我不能只选择第一行?我该怎么写这个查询?谢谢!
我正在尝试让数据库中的用户拥有数据库中最大段的所有权.为此,我正在尝试: SELECT owner,MAX(bytes) FROM SYS.DBA_SEGMENTS GROUP BY owner HAVING ROWNUM <= 1; 但是,这会返回“不是GROUP BY表达式”.为什么我不能只选择第一行?我该怎么写这个查询?谢谢! 解决方法您可以.在Oracle 12c中,您可以:SELECT owner,MAX(bytes) FROM SYS.DBA_SEGMENTS GROUP BY owner ORDER BY MAX(bytes) DESC FETCH FIRST ROW ONLY; 注意ORDER BY. 在早期版本中,您需要一个子查询: SELECT o.* FROM (SELECT owner,MAX(bytes) FROM SYS.DBA_SEGMENTS GROUP BY owner ORDER BY MAX(bytes) DESC ) o WHERE rownum = 1; (编辑:瑞安网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |