Necesito una pregunta se optimice que que volverá el último número de valores consecutivos de A, de B o de C por personid.
por ejemplo, los campos sea: el
PersonID, mydate, A, B, C
A, B, C será FALTA DE INFORMACIÓN o 1. También, solamente uno de éstos puede tener 1 a la vez (los otros valores serán NULOS para cada fila). El mydate no se pide necesario pero necesitamos los últimos datos consecutivos de count.
Sample:
PersonID, mydate, A, B, C ================ 1, 2010-04-22, 1, FALTA DE INFORMACIÓN, NULL 1, 2010-04-18, 1, FALTA DE INFORMACIÓN, NULL 1, 2010-04-21, 1, FALTA DE INFORMACIÓN, NULL 2, 2010-04-18, FALTA DE INFORMACIÓN, 1, NULL 1, 2010-04-14, 1, FALTA DE INFORMACIÓN, NULL 1, 2010-04-15, FALTA DE INFORMACIÓN, 1, NULL 2, 2010-04-15, 1, FALTA DE INFORMACIÓN, vuelta de NULL
Would: el
PersonID, ConsecType, ConsecCount ====================== 1, A, 3 2, B, 1
The ConsecType no necesita necesario ser el nombre del campo… quizás que podría utilizar una declaración de caso o algo más eficiente identificar la existencia de eso value.
I piensa que MS-SQL 2005 viene con algunas más nuevas características como ROW_NUMBER, CTE, la PARTICIÓN, el etc. que puedan poder solucionar esto más fácil. No he visto muchos ejemplos hacia fuera allí pero ningunos que es fácilmente tranferible (por lo menos a mí!). También parecen ocuparse de valores consecutivos de dos tipos (generalmente 0 o 1)… mientras que esto tiene 3… o potencialmente más. Sería grande subir con una solución en la cual podría haber los tipos de N que están de valor binario (1 o FALTA DE INFORMACIÓN). ¡el
The más eficiente la pregunta está para los grupos de datos grandes, el mejor! ¡
Thanks!
class= del
|