sql >> Database >  >> RDS >> Oracle

SQL - Retourneert rijen met de meeste kolomovereenkomsten

U kunt daarvoor de functie rank() gebruiken:

SQLFiddle

select name, color1, color2, color3, prize 
  from (
    select t.*, rank() over (order by decode(color1, 'Red', 1, 0) 
        + decode(color2, 'Blue', 1, 0) + decode(color3, 'Green', 1, 0) desc) rnk
      from t)
  where rnk = 1

Dit retourneert rij of rijen met de meeste overeenkomsten.



  1. Update MySQL met if condition

  2. Hoe array of meerdere waarden in één kolom op te slaan

  3. Gebruikt MySQL index voor het sorteren?

  4. OperationalError krijgen:FATAL:sorry, te veel klanten gebruiken al psycopg2