Sélectionnez la première ligne du groupe par groupe de postgresql
Dans PostgreSQL, la sélection de la première ligne de chaque groupe dans le groupe par opération est une exigence commune. Pour ce faire, nous pouvons utiliser la clause puissante distincte sur
.
SELECT DISTINCT ON (customer) id, customer, total
FROM purchases
ORDER BY customer, total DESC
La clause sur
nous permet de définir les expressions considérées comme des doublons. Dans ce cas, nous spécifions la colonne client
, ce qui signifie que seule les lignes avec la même valeur client
seront considérées comme des doublons.
par
définit l'ordre dans lequel les lignes sont traitées. La première ligne dans chaque groupe client
sera la ligne avec la valeur totale la plus élevée. Si plusieurs lignes ont la même valeur totale maximale, le facteur décisif sera l'ordre dans lequel les colonnes id
seront définies.
points de clé
distinct sur
est une extension de PostgreSQL qui nous permet de spécifier quelles expressions déterminent les doublons. distincte sur
doit correspondre à l'expression principale de la clause d'ordre par
. par
peut être utilisée pour déterminer la priorité de chaque groupe en ligne. distincte sur
ou par
dans la liste SELECT
. client
, total
et id
dans le même ordre que la requête fournira les meilleures performances. Instructions supplémentaires
La méthode distincte sur
est très efficace pour les données avec une cardinalité de colonne élevée (un petit nombre de lignes par client). Cependant, pour les données avec une cardinalité inférieure de colonnes client
(grand nombre de lignes par client), d'autres techniques de requête peuvent être plus efficaces.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3