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

GROUP BY vrátí první záznam

Předpokládám, že mluvíte o něčem jako

SELECT  *
FROM    mytable
GROUP BY
        column

V GROUP BY byste neměli používat neagregované výrazy pokud nejsou ve skupině všichni stejní.

Pokud chcete vrátit záznam obsahující nejnižší hodnotu výrazu ve skupině, použijte toto:

SELECT  mo.*
FROM    (
        SELECT  DISTINCT column
        FROM    mytable
        ) md
JOIN    mytable mo
ON      mo.id = 
        (
        SELECT  id
        FROM    mytable mi
        WHERE   mi.column = md.column
        ORDER BY
                mi.column, mi.someorder
        LIMIT 1
        )


  1. Offline stav uživatele online – problém se stavem offline

  2. PDO::__construct():Server odeslal znakovou sadu (255) neznámou klientovi. Prosím, nahlaste to vývojářům

  3. CHYBA 1698 (28000):Přístup odepřen uživateli 'root'@'localhost'

  4. Schéma databáze Laravel, cizí s možností nulování