Mysql
 sql >> база данни >  >> RDS >> Mysql

Изберете една стойност от група въз основа на реда от други колони

SELECT g, a, b, v
  FROM (
            SELECT *, 
                   @rn := IF(g = @g, @rn + 1, 1) rn, 
                   @g := g
              FROM (select @g := null, @rn := 0) x, 
                   tab
          ORDER BY g, a desc, b desc, v
       ) X
 WHERE rn = 1;

Единичен пас. Всички останали решения ми изглеждат O(n^2).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Създаване на персонализирани html-тагове за CMS?

  2. Cheat Sheet за производителността на MySQL

  3. Проблем с изпълнението на процедурата във файла schema.sql за пролетно зареждане

  4. Осоляване на хешовете ми с PHP и MySQL

  5. MySQL REGEXP граници на думи [[:<:]] [[:>:]] и двойни кавички