sql >> Database >  >> RDS >> Mysql

GROUP BY retourneer het eerste record

Ik neem aan dat je het hebt over iets als

SELECT  *
FROM    mytable
GROUP BY
        column

Gebruik geen niet-geaggregeerde uitdrukkingen in GROUP BY tenzij ze allemaal hetzelfde zijn binnen de groep.

Als u het record met de minste waarde van een uitdrukking binnen een groep wilt retourneren, gebruikt u dit:

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. Laravel installeren op Ubuntu met Apache-, MariaDB- en PHP-ondersteuning

  2. Beperk het aantal rijen waaraan u wilt deelnemen, in mysql

  3. Een back-up maken van of een nieuwe tabel maken van een bestaande SQL Server-tabel in SQL Server - SQL Server / TSQL-zelfstudie, deel 105

  4. Beste databasesoftware voor ontwikkelaars (2022-editie)