sql >> データベース >  >> RDS >> Oracle

GroupyBySQLステートメントにない列を選択して並べ替える方法-Oracle

    GROUPBY句の一部ではない列を含めることは意味がありません。 SELECT句にMIN(X)、MAX(Y)がある場合、他の列(グループ化されていない)はどの行から取得する必要がありますか?

    Oracleのバージョンが十分に新しい場合は、SUM-OVER()を使用して、すべてのデータ行に対してSUM(グループ化)を表示できます。

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

    または、Siteから集計を作成する必要があります 、Desk

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


    1. MySQL、Postgres、Aurora用のサーバーレスGraphQLAPIを作成する方法

    2. 「SQLServerを使用したMicrosoftAccessの最適化」プレゼンテーションをご覧ください

    3. IRIWorkbenchでの新しいテーブルの作成

    4. Flask、Connexion、SQLAlchemyを使用したPython REST API –パート3