Soy nuevo en prisma-client y quiero devolver el último registro de valores de cada usuario de una empresa determinada.
Este es mi schema.prisma :
model Locations { id Int @id @default(autoincrement()) user String company String latitude String longitude String timestamp String }Esto es lo que he probado hasta ahora:
const lastLocations = await db.locations.findMany({ where: { company, }, orderBy: { id: 'desc', }, take: 1, });Pero necesito obtener 1 valor para cada usuario, resolví esto previamente en sql con:
WITH ranked_messages AS ( SELECT m.*, ROW_NUMBER() OVER (PARTITION BY userID ORDER BY timestamp DESC) AS rn FROM locations AS m ) SELECT * FROM ranked_messages WHERE rn = 1 AND companyID = "${companyID}";`;Pero no tengo idea de cómo proceder en prisma. ¿Hay un método "cada uno"?
Agradezco cualquier ayuda. Gracias.
Resolví usando una opción distinct :
const lastLocations = await db.locations.findMany({ where: { company, }, distinct: ['user'], orderBy: { id: 'desc', }, });Gracias.