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
es una extensión de PostgreSQL que nos permite especificar qué expresiones determinan los duplicados.
La expresión debe coincidir con la expresión líder en la cláusula
orden por .
La cláusula se puede usar para determinar la prioridad de cada grupo en línea.
o
orden por en la lista
select .
,
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.
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