Structure de requête
DISTINCT ON
SELECT DISTINCT ON (grouping_expression) selected_columns FROM table_name ORDER BY grouping_expression, additional_ordering_expression(s)
ORDER BY
Exemple <<> Considérons
Tableau:
et les données suivantes: ORDER BY
purchases
<出> Sortie:
CREATE TABLE purchases ( id SERIAL PRIMARY KEY, customer VARCHAR(50) NOT NULL, total NUMERIC(10, 2) NOT NULL );
Valeur nul
INSERT INTO purchases (customer, total) VALUES ('Joe', 5), ('Sally', 3), ('Joe', 2), ('Sally', 1);
Si la valeur de groupe peut contenir la valeur nul, il est recommandé d'ajouter
à la clauseSELECT DISTINCT ON (customer) id, customer, total FROM purchases ORDER BY customer, total DESC, id;
Sélectionnez d'autres colonnes <选择>
<列> La liste n'est pas limitée à l'expression du groupe. Il peut contenir d'autres colonnes, ce qui permet à cette technologie de remplacer les fonctions complexes de sous-requête ou d'agrégat / fenêtre.<code>id | customer | total ----------------------------- 1 | Joe | 5 2 | Sally | 3</code>
<询> L'efficacité de la requête dépend de la distribution des données et du nombre de lignes de chaque groupe. Pour les petits groupes, il est généralement très efficace. Cependant, pour les grands groupes, la technologie alternative décrite dans le lien suivant peut fournir de meilleures performances: ORDER BY
NULLS LAST
ORDER BY customer, total DESC NULLS LAST, id;
SELECT
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!