sql >> Databasteknik >  >> RDS >> Oracle

SQL - Returnera rader med de flesta kolumnmatchningar

Du kan använda funktionen rank() för det:

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

Detta returnerar rad eller rader med flest matchningar.



  1. Jag får en tom html/jsp-tabell utan extraherade data

  2. Hur installerar man Python MySQLdb-modulen med pip?

  3. MySQL:Ignorera en vald kolumn när du använder DISTINCT

  4. ingen pg_hba.conf-post för värd