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

Objednejte výsledek formuláře Mysql group by

  • Pomocí funkce JOIN

a dotaz s GROUP BY získat maximální ID pro každou kategorii (myslím, že chcete řádek s maximálním ID pro každou kategorii, že?)

SELECT e.id
     , e.title
     , e.created
     , e.updated
     , e.category
     , e.content
FROM entries e
JOIN
    ( SELECT max(id) AS maxid
      FROM entries
      GROUP BY category
    ) AS cat
ON e.id = cat.maxid
  • Pomocí IN

a dotaz pro získání maximálního ID pro každou kategorii

SELECT id
     , title
     , created
     , updated
     , category
     , content
FROM entries
WHERE id IN
    ( SELECT max(id)
      FROM entries
      GROUP BY category
    )
  • Použití JAKÉKOLI

a korelovaný poddotaz

SELECT e.id
     , e.title
     , e.created
     , e.updated
     , e.category
     , e.content
FROM entries e
WHERE e.id >= ANY
    ( SELECT cat.id
      FROM entries cat
      WHERE e.category = cat.category
    )
  • Pomocí NOT EXISTS

a korelovaný poddotaz

SELECT e.id
     , e.title
     , e.created
     , e.updated
     , e.category
     , e.content
FROM entries e
WHERE NOT EXISTS
    ( SELECT 1
      FROM entries cat
      WHERE cat.id > e.id
        AND e.category = cat.category
    )


  1. Chyba příkazu sql:sloupec .. neexistuje

  2. Aplikace Xamarin pro Android s online databází MySql/Sql

  3. Strategie pro synchronizaci dvou databází mySQL (na samostatných místech)?

  4. Ukládání dat UTF-16/Unicode na SQL Server