sql >> Databáze >  >> RDS >> Mysql

Skupina MySQL podle pořadí/priority jiného sloupce

Můžete použít ten MAX příklad, jen jste to potřebovali "předstírat". Viz zde: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. Jak může CTE pomoci při psaní složitých a účinných dotazů:Perspektiva výkonu

  2. Krásná polévka webscrape do mysql

  3. PHP a MySQL:Zobrazit SUM of Something, klasifikováno podle odlišné kategorie

  4. PHP Kontrola NULL