sql >> Databáze >  >> RDS >> Oracle

Vyloučení pouze jedné hodnoty MIN na Oracle SQL

Abyste to mohli udělat, musíte je nějak oddělit; váš aktuální problém je, že 2 nejnižší skóre jsou stejná, takže jakákoli operace (ne)rovnosti provedená na jedné z hodnot zachází s tou druhou identicky.

Můžete použít něco jako analytický dotaz ROW_NUMBER() k jednoznačné identifikaci řádků:

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() :

Protože klauzule ORDER BY je na SCORE ve vzestupném pořadí, bude odstraněno jedno z nejnižších skóre. Toto bude náhodná hodnota, pokud do ORDER BY nepřidáte další podmínky pro nerozhodný výsledek.



  1. Odstraňte prvních X řádků databáze

  2. Čas SQL přesahuje

  3. Jak zkontrolovat datum poslední změny v uložené proceduře nebo funkci na SQL serveru

  4. Jak exportovat data z Amazon DynamoDB na server MySQL