sql >> Databasteknik >  >> RDS >> Mysql

GROUP BY returnerar den första posten

Jag antar att du pratar om något liknande

SELECT  *
FROM    mytable
GROUP BY
        column

Du bör inte använda oaggregerade uttryck i GROUP BY såvida de inte alla är samma inom gruppen.

Om du vill returnera posten som innehåller det minsta värdet av ett uttryck inom en grupp, använd detta:

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. Jämför varchar med röding

  2. Att analysera döden med tusen minskar arbetsbelastningen

  3. Hur du dokumenterar din SQL Server-databas

  4. Skicka e-postmeddelanden med bilagor i SQL Server (T-SQL)