sql >> Databasteknik >  >> RDS >> Oracle

Exkluderar endast ett MIN-värde på Oracle SQL

För att göra detta måste du separera dem på något sätt; ditt nuvarande problem är att de 2 lägsta poängen är desamma, så alla (o)jämlikhetsoperationer som utförs på båda värdena behandlar den andra identiskt.

Du kan använda något som den analytiska frågan ROW_NUMBER() för att unikt identifiera rader:

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

Eftersom ORDER BY-satsen är på SCORE i stigande ordning kommer en av de lägsta poängen att tas bort. Detta kommer att vara ett slumpmässigt värde såvida du inte lägger till andra oavgjorda villkor till ORDER BY.



  1. PostgreSQL COPY CSV med två NULL-strängar

  2. SQL Server SELECT INTO @variable?

  3. Hur visar jag flera staplade kolumner för varje datumintervall i en staplad stapel

  4. infoga i lagrad procedur med parametrar MYSQL fungerar inte