"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Cómo seleccionar la primera fila de cada grupo en un grupo PostgreSQL por consulta?

¿Cómo seleccionar la primera fila de cada grupo en un grupo PostgreSQL por consulta?

Publicado el 2025-02-10
Navegar:904

How to Select the First Row of Each Group in a PostgreSQL GROUP BY Query?

Seleccione la primera fila en el grupo por grupo de Postgresql

en PostgreSQL, seleccionar la primera fila de cada grupo en el grupo por operación es un requisito común. Para hacer esto, podemos usar la poderosa cláusula .

SELECT DISTINCT ON (customer) id, customer, total
FROM purchases
ORDER BY customer, total DESC

en la cláusula nos permite definir qué expresiones se consideran duplicados. En este caso, especificamos la columna cliente , lo que significa que solo fila con el mismo valor cliente se considerará duplicados. La cláusula

por define el orden en que se procesan las filas. La primera fila en cada grupo cliente será la fila con el valor total más alto. Si varias filas tienen el mismo valor total máximo, el factor decisivo será el orden en el que se definen las columnas id .

puntos clave

  • distinto en es una extensión de PostgreSQL que nos permite especificar qué expresiones determinan los duplicados. La expresión
  • en debe coincidir con la expresión líder en la cláusula orden por . La cláusula
  • por se puede usar para determinar la prioridad de cada grupo en línea.
  • puede incluir expresiones que no están en la cláusula
  • distinta en o orden por en la lista select .
  • El índice utilizado por la consulta afectará significativamente el rendimiento. Un índice de columna múltiple que abarca las columnas
  • cliente , total y id en el mismo orden que la consulta proporcionará el mejor rendimiento.

instrucciones adicionales

el

distinto en el método es muy eficiente para datos con una cardinalidad de columna alta (un pequeño número de filas por cliente). Sin embargo, para datos con una cardinalidad más baja de las columnas cliente (gran número de filas por cliente), otras técnicas de consulta pueden ser más eficientes.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3