Las tablas de pivote en SQL Server proporcionan una forma poderosa de transponer los datos de las filas a las columnas. Sin embargo, los usuarios pueden encontrar desafíos al construir la consulta correcta.
Use la función Pivot para valores de columna conocidos:
Para valores de columna predefinidos (en este caso el número de semanas), puede usar la función PIVOT directamente:
select *
from
(
select store, week, xCount
from yt
) src
pivot
(
sum(xcount)
for week in ([1], [2], [3])
) piv;
Genere dinámicamente valores de columna de perspectiva:
Para manejar valores de columna desconocidos (como semanas dinámicas), se puede usar una combinación de funciones dinámicas de SQL y ventana:
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @cols = STUFF((SELECT ',' QUOTENAME(Week)
from yt
group by Week
order by Week
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
set @query = 'SELECT store,' @cols ' from
(
select store, week, xCount
from yt
) x
pivot
(
sum(xCount)
for week in (' @cols ')
) p '
execute(@query);
resultado:
ambos métodos producen el mismo resultado:
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3