I-Daten haben, die wie folgt aussieht:Muster identifizieren, um Gruppen zu erstellen
create table t (a varchar2(30), b date);
insert into t values (NULL,TO_DATE('2017/01/01 00:00:44', 'yyyy/mm/dd hh24:mi:ss'));
insert into t values (NULL,TO_DATE('2017/01/01 01:00:44', 'yyyy/mm/dd hh24:mi:ss'));
insert into t values ('AAAA',TO_DATE('2017/01/01 02:00:44', 'yyyy/mm/dd hh24:mi:ss'));
insert into t values (NULL,TO_DATE('2017/01/01 02:30:44', 'yyyy/mm/dd hh24:mi:ss'));
insert into t values ('AAAA',TO_DATE('2017/01/01 03:00:44', 'yyyy/mm/dd hh24:mi:ss'));
insert into t values (NULL,TO_DATE('2017/01/01 04:00:44', 'yyyy/mm/dd hh24:mi:ss'));
insert into t values ('AAAA',TO_DATE('2017/01/01 04:30:44', 'yyyy/mm/dd hh24:mi:ss'));
insert into t values (NULL,TO_DATE('2017/01/01 05:00:44', 'yyyy/mm/dd hh24:mi:ss'));
insert into t values ('AAAA',TO_DATE('2017/01/01 05:30:44', 'yyyy/mm/dd hh24:mi:ss'));
Ich brauche eine Gruppennummer für jede sich wiederholende Muster des Textfeldes zuzuordnen. Das Muster, nach dem ich suche, ist "AAAA - null - AAAA". Ich möchte in der Lage sein, andere "Nullen" außerhalb dieses Musters zu ignorieren. Im Wesentlichen suchen eine Gruppennummer wie folgt vergeben:
a b GROUP
(null) 1/1/2017 0:00 IGNORE FROM ASSIGNING GROUP #
(null) 1/1/2017 1:00 IGNORE FROM ASSIGNING GROUP #
AAAA 1/1/2017 2:00 1
(null) 1/1/2017 2:30 1
AAAA 1/1/2017 3:00 1
(null) 1/1/2017 4:00 IGNORE FROM ASSIGNING GROUP #
AAAA 1/1/2017 4:30 2
(null) 1/1/2017 5:00 2
AAAA 1/1/2017 5:30 2
ich die Daten wie wie folgt aussehen würde:
a b GROUP
AAAA 1/1/2017 2:00 1
(null) 1/1/2017 2:30 1
AAAA 1/1/2017 3:00 1
AAAA 1/1/2017 4:30 2
(null) 1/1/2017 5:00 2
AAAA 1/1/2017 5:30 2
Oracle SQL-Version:
Oracle Database 11g 11.2.0.4 .0 PL/SQL Release 11.2.0.4.0
Sie haben etwas probiert? –
In der mittleren Tabelle hast du 'IGNORE FROM ASSIGNING GROUP #' geschrieben, aber dann in der Ausgabe, die du zeigst, sind diese Zeilen ** nicht enthalten **. Sie werden nicht nur "aus der Gruppennummer" ignoriert, sie werden in ihrer Gesamtheit ignoriert. Also, was ist Ihre Anforderung - schließen Sie diese Zeilen vollständig aus der Ausgabe aus? Dann: Was muss mit Zeilen gemacht werden, wenn der Text in der Spalte "a" nicht null ist, dann haben einige Zeilen "null", und dann gibt es in der Spalte "a" einen anderen Text? Ignorierst du das alles? Also, in der Ausgabe, nur Zeilen zwischen "ersten" und "zweiten" Auftreten desselben Textes enthalten? – mathguy
Haben Sie jemals zwei AAAAs in benachbarten Reihen? Wenn ja, was machst du? Kann es in der Spalte a andere Werte geben? –