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

Grupuj MySQL według kolejności/priorytetu innej kolumny

Możesz użyć tego przykładu MAX, wystarczyło "udawać". Zobacz tutaj:http://sqlfiddle.com/#!2/58688/5

SELECT *
FROM test
JOIN (SELECT 'west' AS direction, 4 AS weight
      UNION
      SELECT 'north',3
      UNION
      SELECT 'south',2
      UNION
      SELECT 'east',1) AS priority
  ON priority.direction = test.direction
JOIN (
      SELECT route, MAX(weight) AS weight
      FROM test
      JOIN (SELECT 'west' AS direction, 4 AS weight
            UNION
            SELECT 'north',3
            UNION
            SELECT 'south',2
            UNION
            SELECT 'east',1) AS priority
        ON priority.direction = test.direction
      GROUP BY route
) AS t1
  ON t1.route = test.route
    AND t1.weight = priority.weight


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mysql2::Błąd:Nieprawidłowa wartość ciągu

  2. Zapytanie MySQL NOT IN nie działa

  3. Sortuj MySQL według liczby wystąpień

  4. MySql łączy LIMIT i ORDER BY

  5. Czy należy używać wartości NULL lub pustego ciągu do reprezentowania żadnych danych w kolumnie tabeli?