Selecione a primeira linha do grupo pelo grupo de postgreSql
No PostGresql, selecionar a primeira linha de cada grupo do grupo por operação é um requisito comum. Para fazer isso, podemos usar a poderosa distinta na cláusula
.
SELECT DISTINCT ON (customer) id, customer, total
FROM purchases
ORDER BY customer, total DESC
A cláusula distinto na cláusula
nos permite definir quais expressões são consideradas duplicatas. Nesse caso, especificamos a coluna cliente
, o que significa que apenas linhas com o mesmo valor cliente
será considerado duplicado.
da cláusula de
define a ordem em que as linhas são processadas. A primeira linha em cada grupo cliente
será a linha com o maior valor total. Se várias linhas tiverem o mesmo valor total máximo, o fator decisivo será a ordem em que as colunas id
serão definidas.
Pontos de chave
distinto em
é uma extensão do postgreSQL que nos permite especificar quais expressões determinam duplicatas. distinta na expressão
deve corresponder à expressão líder na ordem por
cláusula. por
pode ser usada para determinar a prioridade de cada grupo em linha. distinto em
ordenar por cláusula na
selecionar list.
,
total e
id na mesma ordem que a consulta fornecerá o melhor desempenho.
instruções adicionais
O método distinto no é muito eficiente para dados com uma cardinalidade de alta coluna (um pequeno número de linhas por cliente). No entanto, para dados com uma menor cardinalidade das colunas
do cliente (grande número de linhas por cliente), outras técnicas de consulta podem ser mais eficientes.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3