加入收藏 | 设为首页 | 会员中心 | 我要投稿 湖南网 (https://www.hunanwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

如何选择和排序不在Groupy中的列按SQL语句 – Oracle

发布时间:2021-04-07 16:26:30 所属栏目:编程 来源:网络整理
导读:我有以下声明: SELECT IMPORTID,Region,RefObligor,SUM(NOTIONAL) AS SUM_NOTIONALFrom PositionsWhere ID = :importIDGROUP BY IMPORTID,RefObligorOrder BY IMPORTID,RefObligor 表格中存在一些特另外列,我想作为“表现数据”的输出,但我不但愿在group by

我有以下声明:

SELECT  
    IMPORTID,Region,RefObligor,SUM(NOTIONAL) AS SUM_NOTIONAL
From 
    Positions
Where
    ID = :importID
GROUP BY 
    IMPORTID,RefObligor
Order BY 
    IMPORTID,RefObligor

表格中存在一些特另外列,我想作为“表现数据”的输出,但我不但愿在group by语句中.

这些是Site,Desk

最终输出将包括以下列:

IMPORTID,Site,Desk,SUM(NOTIONAL) AS SUM_NOTIONAL

抱负环境下,我但愿数据排序如下:

Order BY 
    IMPORTID,RefObligor

怎么做到这一点?

办理要领

包括不属于GROUP BY子句的列是没故意义的.思量一下SELECT子句中是否有MIN(X),MAX(Y),其他列(未分组)应该来自哪一行?

假如您的Oracle版本足够新,则可以行使SUM-OVER()来表现针对每个数据行的SUM(分组).

SELECT  
    IMPORTID,SUM(NOTIONAL) OVER(PARTITION BY IMPORTID,RefObligor) AS SUM_NOTIONAL
From 
    Positions
Where
    ID = :importID
Order BY 
    IMPORTID,RefObligor

可能,您必要从Site,Desk列中举办聚合

SELECT  
    IMPORTID,Min(Site) Site,Min(Desk) Desk,Min(Site),Min(Desk),RefObligor

(编辑:湖南网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读