


Comment puis-je récupérer efficacement des lignes avec la valeur maximale par groupe dans une base de données relationnelle ?
Rechercher efficacement des valeurs maximales au sein de groupes dans des bases de données relationnelles
Extraire des lignes contenant les valeurs maximales pour des colonnes spécifiques tout en préservant l'intégrité du groupe au sein de bases de données relationnelles peut être complexe. Cet article aborde le défi consistant à récupérer la ligne avec le numéro rond le plus élevé pour chaque ID unique, en donnant la priorité à l'efficacité des requêtes.
Une méthode utilise des sous-requêtes :
SELECT * FROM (SELECT id, round, CASE WHEN (MAX(round) OVER (PARTITION BY id)) = round THEN score ELSE NULL END score FROM SCORES where id in (1,2,3) ) scorevals WHERE scorevals.round is not null;
Cependant, cette approche est inefficace en raison de l'étape de filtrage post-traitement.
Pour des performances améliorées, pensez à utiliser les fonctions de fenêtre :
SELECT DISTINCT id ,max(round) OVER (PARTITION BY id) AS round ,first_value(score) OVER (PARTITION BY id ORDER BY round DESC) AS score FROM SCORES WHERE id IN (1,2,3) ORDER BY id;
Cette requête utilise des fonctions de fenêtre pour déterminer le tour maximum pour chaque ID, puis récupère le score correspondant. Le mot-clé DISTINCT
garantit une seule ligne par ID.
Une alternative potentiellement plus rapide, utilisant deux fois la même fonction de fenêtre :
SELECT DISTINCT id ,first_value(round) OVER (PARTITION BY id ORDER BY round DESC) AS round ,first_value(score) OVER (PARTITION BY id ORDER BY round DESC) AS score FROM SCORES WHERE id IN (1,2,3) ORDER BY id;
Les deux solutions optimisées évitent les filtrages inutiles, ce qui entraîne des temps d'exécution des requêtes plus rapides par rapport à l'approche des sous-requêtes.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Réduisez l'utilisation de la mémoire MySQL dans Docker

Comment modifier une table dans MySQL en utilisant l'instruction ALTER TABLE?

Comment résoudre le problème de MySQL ne peut pas ouvrir la bibliothèque partagée

Exécutez MySQL dans Linux (avec / sans conteneur Podman avec phpmyadmin)

Exécuter plusieurs versions MySQL sur macOS: un guide étape par étape

Quels sont les outils de GUI MySQL populaires (par exemple, MySQL Workbench, PhpMyAdmin)?

Comment configurer le cryptage SSL / TLS pour les connexions MySQL?
