La table MySQL fournie, rpc_responses, stocke les réponses aux appels RPC avec des champs comprenant l'horodatage, la méthode, l'identifiant et la réponse. L'objectif est de récupérer les réponses les plus récentes pour des combinaisons distinctes de méthode et d'identifiant.
Pour y parvenir, nous pouvons exploiter la fonction ROW_NUMBER() de MySQL avec une clause de fenêtrage :
SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY method, id ORDER BY timestamp DESC) AS row_num FROM rpc_responses ) AS subquery WHERE row_num = 1
Ce La requête utilise une sous-requête pour calculer le numéro de ligne pour chaque combinaison distincte de méthode et d'identifiant, classé par ordre décroissant selon le champ d'horodatage. La requête externe filtre ensuite les résultats pour sélectionner uniquement les lignes portant le numéro 1, qui représente l'enregistrement le plus récent pour chaque combinaison.
Cette approche devrait récupérer efficacement les données souhaitées sans avoir besoin de jointures complexes ou de tables temporaires. .
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!