I potrzebować zapytanie który optymalizować który wracać the opóźniony liczba konsekutywny wartość lub A, B lub C personid.
For przykład, the pole być:
PersonID, mydate, A, B, C
A, B, C lub być NIEOBOWIĄZUJĄCY lub 1. Także, tylko jeden jeden móc (1) na raz (the inny wartość być NIEOBOWIĄZUJĄCY dla nieobowiązujący rząd). The mydate koniecznie rozkazywać ale my potrzebować the opóźniony konsekutywny count.
Sample Dane:
PersonID, mydate, A, B, C ================ 1, 2010-04-22, (1), NIEOBOWIĄZUJĄCY, NULL 1, 2010-04-18, (1), NIEOBOWIĄZUJĄCY, NULL 1, 2010-04-21, (1), NIEOBOWIĄZUJĄCY, NULL 2, 2010-04-18, NIEOBOWIĄZUJĄCY, (1), NULL 1, 2010-04-14, (1), NIEOBOWIĄZUJĄCY, NULL 1, 2010-04-15, NIEOBOWIĄZUJĄCY, (1), NULL 2, 2010-04-15, (1), NIEOBOWIĄZUJĄCY, NULL
Would powrót:
PersonID, ConsecType, ConsecCount ====================== 1, A, 3 2, B, 1
The ConsecType koniecznie potrzebować the imię the śródpolny… być może ono móc skrzynka oświadczenie lub… skuteczny the istnienie bardziej value.
I myśl MS-SQL 2005 komes z niektóre nowy cecha jak ROW_NUMBER, CTE, ROZDZIAŁ, Etc. który móc sprawnie row_number łatwy. I widzieć wiele przykład wiele tam ale nikt który być łatwo zbywalny (przynajmniej!). Także wydawać się z konsekutywny wartość dwa typ (zazwyczaj (0) lub 1)… podczas gdy 1) mieć 3… lub potencjalnie lub. Ono być wielki z rozwiązanie w che tam móc N typ który być binarny wartość ((1) lub NIEOBOWIĄZUJĄCY).
The skuteczny the zapytanie być dla wielki datasets, the lepszy!
Thanks!
|