Maison >base de données >tutoriel mysql >Comment trouver la dernière destination de chaque train à l'aide de SQL ?
Utilisez la clause MAX(DATE) et GROUP BY pour trouver la dernière destination
Le but de cette requête SQL est de récupérer la dernière destination de chaque train, sous réserve de l'heure de départ maximale. Cependant, en excluant la colonne 'Dest' de la clause GROUP BY, je rencontre l'erreur "ora-00979 not a GROUP BY expression", qui semble contre-intuitive.
Pour résoudre ce problème, nous pouvons utiliser la fonction de fenêtre RANK() pour attribuer un classement à chaque destination au sein de chaque groupe de train. Concrètement, la destination la mieux classée correspondra à la dernière heure de départ.
La requête SQL suivante illustre cette approche :
<code class="language-sql">SELECT train, dest, time FROM ( SELECT train, dest, time, RANK() OVER (PARTITION BY train ORDER BY time DESC) dest_rank FROM traintable ) where dest_rank = 1</code>
La requête fonctionne comme suit :
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!