Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Wybierz jedną wartość z grupy na podstawie kolejności z innych kolumn

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;

Pojedynczy przejazd. Wszystkie inne rozwiązania wyglądają dla mnie na 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. Użycie Python3 mysqlclient-1.3.6 (aka PyMySQL)?

  2. 2017 @ Severalnines:Celebrujemy historie naszych klientów

  3. Wyszukiwanie geograficzne (odległość) w PHP/MySQL (wydajność)

  4. Jaka jest różnica wydajności w implementacjach podziału relacyjnego MySQL (IN AND zamiast IN OR)?

  5. Jak zoptymalizować zapytanie SQL z obliczaniem odległości według długości i szerokości geograficznej?