Ich hatte alle diese Frage teilweise @Gordon Linoff dort mit einer zusätzlichen Anforderungen beantwortet.Wählen Sie die erste Zeile, wo die nächsten 2 Zeilen um +1 erhöhen und (rowVal + 2) durch 3 teilbar ist
Ich möchte die erste Zeile zu finden, wo die nachfolgenden n Zeilen Zuwachswerte von + 1.
CREATE TABLE #Temp
([ID] int, [cct] int)
;
INSERT INTO #Temp
([ID], [cct])
VALUES
(12807, 6),
(12813, 12),
(12818, 17),
(12823, 22),
(12824, 23),
(12830, 29),
(12831, 30),
(12832, 31),
(12833, 32),
(12835, 34),
(12837, 36),
(12838, 37),
(12839, 38),
(12840, 39),
(12841, 40),
(12844, 43),
(12846, 45),
(12847, 46),
(12848, 47),
(12849, 48),
(12850, 49),
(12851, 50),
(12854, 53),
(12856, 55),
(12857, 56),
(12860, 59),
(12862, 61),
(12863, 62),
(12864, 63),
(12865, 64),
(12866, 65),
(12871, 70),
(12872, 71),
(12873, 72)
;
@Gordon hat mir schon mit diesem Code die Sequenz ein Teil davon zu finden.
select min(id),min(cct) as cct, count(*) as length
from (select s.*, (cct - row_number() over (order by id)) as grp
from #Temp s
) s
group by grp
having count(*) >= 3
Dies funktioniert perfekt, um die Sequenz zu finden. Wie aus dem Ergebnis ersichtlich ist.
ID cct length
12830 29 4
12837 36 5
12846 45 6
12862 61 5
12871 70 3
aber ich brauche den CCT-Wert innerhalb der Sequenz, die erfüllt (CCT + 2)% 3 = 0
I die Abfrage ID 12838 zurückgeben müssen zu finden, CCT 37, wie dies zuerst CCT-Wert + 2 durch 3 teilbar, wobei die nächsten 2 Zeilenwerte um 1 erhöht werden.
Jede Hilfe wird geschätzt.
Sie haben Glück, dass Sie eine Antwort auf Ihre vorherige Frage erhalten haben. Ihre Fragen sind sehr unklar. Und ich vermute auch, dass deine Frage falsch ist. Dein Titel sagt * teilbar durch 3 *, aber in deinem Post hast du '(cct + 2)% 2 = 0'. Das scheint nicht richtig zu sein. – sstan
Bitte lesen Sie [this] (http://spaghettiba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/) für einige Tipps zur Verbesserung Ihrer Frage. Es ist hilfreich, Datenbankfragen mit der entsprechenden Software (MySQL, Oracle, DB2, ...) und der Version, z. 'sql-server-2014'. Unterschiede in Syntax und Funktionen beeinflussen oft die Antworten. – HABO
Entschuldigung. Ich habe mehr Code hinzugefügt, um bei der Frage zu helfen. SQLFiddle scheint im Moment nicht verfügbar zu sein, daher konnte ich dort nicht replizieren. Danke für den Tipp. – user1781272