sql >> Base de Datos >  >> RDS >> Mysql

MySQL Seleccionar filas en la primera aparición de cada valor único

mysql tiene un "truco" para esto:

select *
from mytable
group by cid;

Eso es todo lo que necesita, porque en mysql le permite no agrega las columnas no agrupadas (otras bases de datos generarían un error de sintaxis), en cuyo caso genera solo la primera aparición de cada valor agrupado. Sin embargo, tenga en cuenta que esto no garantizará el camino en el que se determina la "primera" ocurrencia (será cómo se leen las filas)

Si quieres un particular primera ocurrencia, ordenar primero, luego aplicar el truco de agrupar por:

select *
from (
    -- order by the "time" column descending to get the "most recent" row
    select * from mytable order by time desc
    ) x
group by cid