Recherche de valeurs minimales et maximales pour des lignes consécutives
Vous disposez d'un ensemble de données avec des lignes représentant des activités, regroupées par nom et classées par numéro de ligne. L'objectif est de trouver les valeurs minimales et maximales des heures de début et de fin pour des lignes consécutives au sein de chaque groupe d'activités.
Solution utilisant la différence de numéro de ligne :
Une approche est utiliser la différence entre les numéros de ligne pour identifier les lignes consécutives du même activité :
with cte as ( select *, row_number() over (partition by name order by rn) as seqnum_n, row_number() over (partition by name, act order by rn) as seqnum_na from input ) select name, act, min(startt), max(endd) from cte group by seqnum_n - seqnum_na, name, act;
Explication :
Créez une expression de table commune (CTE) appelée cte en ajoutant deux colonnes supplémentaires :
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!