Maison > base de données > tutoriel mysql > Comment trouver les valeurs minimales et maximales sur des lignes consécutives avec des espaces et des îlots ?

Comment trouver les valeurs minimales et maximales sur des lignes consécutives avec des espaces et des îlots ?

DDD
Libérer: 2024-12-24 19:14:11
original
766 Les gens l'ont consulté

How to Find Minimum and Maximum Values Across Consecutive Rows with Gaps and Islands?

Recherche des valeurs minimales et maximales pour les lignes consécutives avec des espaces et des îlots

L'objectif est d'extraire les valeurs minimales et maximales des colonnes de début et de fin pour les lignes consécutives partageant la même valeur d'acte, tout en ignorant les espaces et les îlots de lignes avec des actes différents valeurs.

Solution :

Pour y parvenir, nous utilisons des numéros de ligne pour identifier des groupes consécutifs de lignes similaires :

with cte as (
  select name, act, rn, startt, endd,
         row_number() over (partition by name, act order by rn) as act_rn
  from input
)
select name, act, min(startt), max(endd)
from cte
group by name, act, act_rn - rn;
Copier après la connexion

Explication :

  • La sous-requête cte ajoute les numéros de ligne et les numéros de ligne d'acte aux données d'entrée.
  • La requête principale regroupe les données par nom, acte et différence entre le numéro de ligne d'acte et le numéro de ligne. Cette différence est utilisée pour différencier les lignes consécutives et non consécutives au sein d'une valeur d'acte particulière.
  • Le regroupement nous permet d'agréger les valeurs minimales et maximales pour chaque groupe consécutif, en éliminant les écarts et les îlots.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal