sql >> Databasteknik >  >> RDS >> Mysql

Mysql välj sista raden för varje grupp

För det första bör du inte undkomma kolumnnamnet med enstaka citattecken eftersom det inte är bokstavligt sträng.
För det andra kan du göra en delfråga som separat får den senaste tiden för varje c_id och slå ihop den med den ursprungliga tabellen för att få de andra kolumnerna.

SELECT  a.*
FROM    message a
        INNER JOIN
        (
            SELECT  c_id, MAX(time) time
            FROM    message
            GROUP   BY c_id
        ) b ON a.c_id = b.c_id AND
                a.time = b.time

eller

SELECT  a.*
FROM    message a
WHERE   a.time =
        (
            SELECT  MAX(time) time
            FROM    message b
            WHERE   a.c_id = b.c_id
        ) 


  1. Topp Facebook-grupper för Analytics, Big Data, Data Mining, Hadoop, NoSQL, Data Science

  2. MySQL begränsar resultat per kategori

  3. Gratis fältsjukhusdatabas för att bekämpa covid-19-pandemin

  4. Hur man kör SQL-fråga utan att visa resultat