Il y a une table Oracle comme ceci (cette table est le résultat d'une requête de jointure complexe) nom de table est port p> donc, comment créer une requête pour obtenir seulement Enfin, les lignes DATATIMECALC? P> Résultat attendu est P> objectId xml DATETIME sourceId
4b626ed7-fd66-46e3-98b4-e235c029f92f ... 2019-11-28 10:40:51.477 1-FR
8d4633c7-5422-46c9-a653-632bed534b60 ... 2019-11-28 10:40:51.505 1-I1
3 Réponses :
Je comprends que vous voulez la dernière ligne par pour la performance, vous souhaitez un index sur sourceID code>, avec des enregistrements commandés par
DateTime code>. Une méthode que je m'attendrais à être assez efficace dans Oracle est de filtrer avec une sous-requête corrélée:
(sourceID, DateTime) code >. p> p>
Vous pouvez utiliser Row_Number ()
select a.* from ( select *, row_number() over(PARTITION by sourceId order by datetime desc) rn from t ) a where a.rn=1
Veuillez utiliser ci-dessous Query.