¿Cómo traer el primer dato de cada grupo?

publicado por: Anonymous

Buen día colegas

Tengo una consulta, quiero traer los datos, sin que se repitan de un modelo, ese modelo tiene varios ( id ) pero solo quiero traer el primer id de cada modelo. ¿Alguien tiene alguna idea de como realizar esta acción?.

Por ahora estoy usando DISTINCT me funciona, para que los modelos no se repitan pero ahora quiero el primer id de cada modelo.

consulta usada:

SELECT DISTINCT modelo,id
           FROM ITT_ALP_GLOBAL 
           WHERE LINEA='Comercial'
           order by modelo asc

Consulta SQL

solución

En primer lugar como menciona el compañero @gbianchi, decir primero y último en base de datos es relativo, relativo al orden que tenga la consulta. Podría ser que el primero signifique el más antiguo, pero en este caso no tenemos una fecha ni un id incremental para determinarlo. Como te sirve que primero sea efectivamente el primero tomando un orden alfabético, lo que buscas se resuelve simplemente usando una función de agregación, en este caso MIN(). ¿Qué significa una función de agregación? es una función que se aplica sobre una determinada columna dentro del grupo. Veamos tu caso:

SELECT  modelo, 
        MIN(id) ID
        FROM ITT_ALP_GLOBAL 
        WHERE LINEA='Comercial'
    GROUP BY modelo
    ORDER BY modelo ASC;

Nota: Si quieres tener el último de cada grupo, obviamente podrías usar un MAX()

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *