Hy, kleine Hilfe bitte, ich habe eine vollständige Sequenz von 12 Elemente, identifiziere ich diese Elemente von 2 verschiedenen Gruppen (12345 und 54321). Nun, ich brauche die erste Folge von der Position „12345“ bei 4 aufhören zu identifizieren und neu starten zu 10. So etwas:MYSQL: Finden Sie fehlende Werte in einer Sequenz von verschiedenen Gruppen
Ich habe diese Tabelle:
------------------
|seq |partNumber|
------------------
| 1 | 12345 |
| 2 | 12345 |
| 3 | 12345 |
| 4 | 12345 |
| 10 | 12345 |
| 11 | 12345 |
| 12 | 12345 |
| 5 | 54321 |
| 6 | 54321 |
| 7 | 54321 |
| 8 | 54321 |
| 9 | 54321 |
------------------
Ich brauche dieses Ergebnis zu finden:
------------
|Start|Stop|
------------
| 5 | 9 | (partnumber:12345)
------------
die Abfrage, die ich verwendet:
select start, stop from (
select m.partNumber + 1 as start,
(select min(partNumber) - 1 from seq as x where x.partNumber > m.partNumber) as stop
from seq as m
left outer join seq as r on m.partNumber = r.partNumber - 1 where r.partNumber is null) as x
where stop is not null;
Aber diese Abfrage gibt mir dieses Ergebnis:
------------
|Start|Stop|
------------
| 9 | 9 | (partnumber:12345)
------------
Endergebnis: möchte ich Sequenz von „12345“ in 1 endet beginnt bei 10 in 4 (Pause) Neustart identifizieren Enden 12, ich habe einen Spalt in 5 bis 9. Die andere Sequenz von „54321 "beginnt an 5 Enden in 9, hier habe ich keine Lücke.
schlug mich zu ihm, @ user42 –
Können Sie in dieser Anwendung, weisen eine Obergrenze auf den Wert von 'seq'? –
Mögliche Duplikate von [Wie Lücken in der fortlaufenden Nummerierung in MySQL zu finden?] (Http://stackoverflow.com/questions/4340793/how-to-find-gaps-in-sequential-numbering-in-mysql) – nada