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

OracleSQLでMIN値を1つだけ除外する

    これを行うには、何らかの方法でそれらを分離する必要があります。現在の問題は、最も低い2つのスコアが同じであるため、いずれかの値に対して実行された(不)等式操作は、もう一方の値を同じように扱うことです。

    分析クエリROW_NUMBER() 行を一意に識別するには:

    select id, sum(score) / count(score) as score
      from ( select id, score, row_number() over (order by score) as score_rank
               from gamescore
              where gameno = 1
                    )
     where score_rank <> 1
     group by id
    

    ROW_NUMBER()

    ORDER BY句は昇順でSCOREにあるため、最も低いスコアの1つが削除されます。 ORDER BYに他のタイブレーカー条件を追加しない限り、これはランダムな値になります。



    1. Mac用のOracle10g/ 11g

    2. カスタム変数に対して機能しない注目のDESCによる注文

    3. SQL-SUM()のWHERE条件

    4. JDBCを使用したデータベースサーバー接続変数の取得と設定