Existe-t-il un moyen simple d'obtenir les enregistrements dont la valeur est différente des autres enregistrements
P粉163951336
P粉163951336 2024-04-04 21:59:30
0
1
414

J'ai donc l'enregistrement dans ma base de données :

id Date heure Nom Niveau
0 2022-03-22 23:18:01 Jean 615
1 2022-03-22 23:17:01 Jean 616
2 2022-03-22 23:16:02 Jean 616
3 2022-03-22 23:15:01 Jean 616
4 2022-03-22 23:14:01 Jean 617
5 2022-03-22 23:13:01 Jean 617
6 2022-03-22 23:12:01 Jean 616
7 2022-03-22 23:11:01 Jean 617
8 2022-03-22 23:10:02 Jean 618
9 2022-03-22 23:09:01 Jean 618

En conséquence, je souhaite obtenir ces valeurs où le prochain "lvl" est différent du "lvl" précédent. Je veux dire, je veux obtenir l'enregistrement du résultat avec l'identifiant :

0 - parce que c'est le premier,

1 - parce que le niveau n'est pas égal à 0,

2,3 - ignoré car le niveau est le même que 1

4 - puisque le niveau est différent de 1,

5 - ignoré car le niveau est identique à 4,

6 - Parce que le niveau est différent du 5,

7 - Parce que le niveau est différent du 6,

8 - Parce que le niveau est différent du 7,

9 - Sauter.

P粉163951336
P粉163951336

répondre à tous(1)
P粉164942791

Cela semble être un bon choix pour lag fonctions analytiques (utilisant MySQL 8+) :

with keep as (
  select *, if(id=Min(id) over() or level != lag(level) over(order by id), 1, 0) keepme
  from t
)
select id
from keep
where keepme=1;

Exemple de violon

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal