Cuestión : GRUPO POR declaraciones de caso

No no necesario un problema, pero yo tiene una pregunta el mirar usar declaraciones de CASO en la agregación de preguntar de queries.

My es algo similar… a la SUMA del

SELECT (COLA), SUMA (COLB), @MyVar
del
CASE CUANDO 1 ENTONCES el 'Br/> del XXX'< CUANDO ENTONCES 'Br/> del XXX'< 2 CUANDO ENTONCES 'el Br/>END del XXX'< 3 ENTONCES el 'Br/> del XXX'< CUANDO 4 COMO @MyVar
de COLC
FROM MyTable
GROUP BY
CASE CUANDO 1 ENTONCES el 'Br/> del XXX'< CUANDO ENTONCES 'Br/> del XXX'< 2 CUANDO ENTONCES 'el Br/>END

del XXX'< 3 ENTONCES el 'Br/> del XXX'< CUANDO 4… donde está diversos valores “XXX” según el caso. ¿Pregunta hay, será impacto del funcionamiento en la pregunta antedicha porque I que repite la pieza entera del CASO de la pregunta en el grupo por cláusula? ¿O sería mejor jerarquizar la primera parte de la pregunta como entonces lo hace un CTE y un grupo cerca en la columna 3? Como esto… la COLA del
SELECT del

WITH MyCTE (COLA, COLB, COLC) AS
(SUMA del
SELECT (COLA), SUMA (COLB), @MyVar
del
CASE CUANDO 1 ENTONCES el 'Br/> del XXX'< CUANDO ENTONCES 'Br/> del XXX'< 2 CUANDO ENTONCES 'el Br/>END
FROM MyTable
del XXX'< 3 ENTONCES el 'Br/> del XXX'< CUANDO 4), COLB, COLC DEL GRUPO de MyCTE de COLC



Points será dada para la mejor respuesta y cualesquiera otros indicadores/extremidad/comments.
class= del

Respuesta : GRUPO POR declaraciones de caso

Hecho correctamente, no debe diferenciar ningún, el optimizador es bastante elegante reutilizar expresiones.
Pero su CTE no trabajará que manera - todavía necesita a grupo cerca en el CTE sí mismo, y usted no ha ganado cualquier cosa.

La visión ad hoc parecería esto:

seleccionar la suma (cola), suma (ColB), MyVar de
(Cola SELECTA, ColB,
 ENCAJONAR @MyVar
     CUANDO 1 ENTONCES “XXX”
     CUANDO 2 ENTONCES “XXX”
     CUANDO 3 ENTONCES “XXX”
     CUANDO 4 ENTONCES “XXX”
 TERMINAR MyVar
 De MyTable) v
grupo de MyVar

El CTE es igual.
Otras soluciones  
 
programming4us programming4us