Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.
Resumen de privacidad
Cookies estrictamente necesarias
Las cookies estrictamente necesarias tiene que activarse siempre para que podamos guardar tus preferencias de ajustes de cookies.
Si desactivas esta cookie no podremos guardar tus preferencias. Esto significa que cada vez que visites esta web tendrás que activar o desactivar las cookies de nuevo.
Cookies de terceros
Esta web utiliza Google Analytics, Facebook Pixel y Piwik para recopilar información anónima tal como el número de visitantes del sitio, o las páginas más populares.
Dejar esta cookie activa nos permite mejorar nuestra web.
¡Por favor, activa primero las cookies estrictamente necesarias para que podamos guardar tus preferencias!
Gracias me ayudo mucho, tengo una duda.
Si en ves de una funcion agregada necesito dos, es decir dos SUM ya que tendo dos columna de valores?
Buenas Emmanuel.
Muchas gracias por su feedback, me alegra que el artículo le haya sido de utilidad.
En cuanto a su duda, para convertir filas en columnas y viceversa en SQL Server cuando necesitas aplicar dos funciones de agregación diferentes, como dos SUM, puedes utilizar una combinación de la cláusula CASE junto con las funciones de agregación. Aquí te muestro un ejemplo de cómo podrías hacerlo:
Supongamos que tienes una tabla llamada Datos con tres columnas: Categoria, Valor1 y Valor2. Quieres convertir las filas en columnas, calculando la suma de Valor1 y Valor2 por cada categoría. Puedes hacerlo así:
SELECT
Categoria,
SUM(CASE WHEN Condicion THEN Valor1 ELSE 0 END) AS Suma_Valor1,
SUM(CASE WHEN Condicion THEN Valor2 ELSE 0 END) AS Suma_Valor2
FROM
Datos
GROUP BY
Categoria;
En este ejemplo, Condicion podría ser alguna condición que desees aplicar para determinar qué filas se suman y cuáles no. Podría ser algo como Categoria = ‘AlgunaCategoria’.
Este SQL sumará los valores de Valor1 y Valor2 por cada categoría, pero solo sumará aquellos que cumplan con la condición especificada en la cláusula CASE. Si necesitas aplicar diferentes condiciones para cada función SUM, simplemente ajusta la condición dentro de la cláusula CASE en cada línea correspondiente.
Espero haberte ayudado.
Un saludo.
Dado que parece que no existen dos filas en la tabla original para el mismo país y año, ¿por qué usar SUM? ¿ no podemos usar simplemente PIVOT y dejar que el sistema reordene las filas? ¿Es obligatorio usar una función de agregación incluso si uso la sentencia PIVOT?
Muchas gracias de antemano.
Buenas tardes Diego.
En SQL Server, la función PIVOT se utiliza para transformar filas en columnas, pero requiere una función de agregación, ya que necesita saber cómo combinar los valores de las filas correspondientes a una misma columna en la salida pivotada.
Cuando realizas un PIVOT, estás especificando qué columna se usará para crear las nuevas columnas en la salida. Además, debes proporcionar una función de agregación para indicar cómo se deben combinar los valores de esas filas en las nuevas columnas. La función de agregación puede ser SUM, MAX, MIN, AVG, entre otras.
Por ejemplo, si tienes varias filas para el mismo país y año y deseas combinar esas filas en una sola fila, necesitas una función de agregación para determinar cómo se calculará el valor resultante. Si no tienes duplicados y sabes que cada combinación de país y año es única, aún así debes especificar una función de agregación en el PIVOT.
En resumen, aunque no haya duplicados en los datos originales, la función de agregación es necesaria cuando usas PIVOT en SQL Server para indicar cómo se deben combinar los valores de las filas correspondientes a una misma columna en la salida pivotada.
MIL GRACIAS
Me ha sido muy útil esta página.
Los ejemplos están algo «tontos», cómo voy a saber qué resultados poner luego del FOR? no puedo poner «quemados» valores en una consulta dinámica, a quién se le ocurre?
Saludos hermanos ando investigando, como generar un valor mas alto de una serie de valores en una tabla con php