{"id":3458,"date":"2023-04-07T00:00:00","date_gmt":"2023-04-07T00:00:00","guid":{"rendered":"https:\/\/electronica.guru\/con\/optimizando-la-manipulacion-de-datos-con-la-funcion-pivot-t-sql\/"},"modified":"2023-04-07T00:00:00","modified_gmt":"2023-04-07T00:00:00","slug":"optimizando-la-manipulacion-de-datos-con-la-funcion-pivot-t-sql","status":"publish","type":"post","link":"https:\/\/electronica.guru\/con\/optimizando-la-manipulacion-de-datos-con-la-funcion-pivot-t-sql\/","title":{"rendered":"Optimizando la Manipulaci\u00f3n de Datos con la Funci\u00f3n Pivot T-SQL"},"content":{"rendered":"<div class=\"articlecontent\">\n<div class=\"newlinediv\"><\/div>\n<p> En el mundo de la manipulaci\u00f3n de datos, la funci\u00f3n Pivot es una poderosa herramienta que puede ser utilizada para transformar filas en columnas, facilitando el an\u00e1lisis y la presentaci\u00f3n de datos en un formato m\u00e1s organizado y estructurado. Pivot T-SQL es una implementaci\u00f3n espec\u00edfica de esta funci\u00f3n que se utiliza habitualmente en SQL Server para realizar estas transformaciones. En este art\u00edculo, exploraremos c\u00f3mo utilizar Pivot T-SQL y algunas de sus caracter\u00edsticas clave. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> La funci\u00f3n Pivot en T-SQL funciona tomando un conjunto de datos y gir\u00e1ndolo para que las filas se conviertan en columnas y las columnas en filas. Esto permite presentar los datos en un formato m\u00e1s conciso y legible, sobre todo cuando se trata de grandes conjuntos de datos. La funci\u00f3n Pivot funciona especificando las columnas que deben transformarse, junto con los valores que deben utilizarse para rellenar las nuevas columnas. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Una de las principales ventajas de Pivot T-SQL es su capacidad para agregar datos, proporcionando informaci\u00f3n resumida que puede utilizarse para comprender mejor los datos subyacentes. Esto es particularmente \u00fatil cuando se trata de grandes conjuntos de datos, donde puede ser dif\u00edcil identificar tendencias y patrones sin alguna forma de agregaci\u00f3n. Pivot T-SQL permite utilizar varias funciones de agregaci\u00f3n, como SUM, COUNT y AVG, entre otras. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Para utilizar Pivot T-SQL, debe especificar las columnas que desea pivotar, junto con los valores que se utilizar\u00e1n para rellenar las nuevas columnas. Tambi\u00e9n puede especificar cualquier funci\u00f3n de agregaci\u00f3n que desee aplicar a los datos. La sintaxis de Pivot T-SQL es la siguiente: <\/p>\n<div class=\"title\"> SELECT [lista de columnas<\/div>\n<p> FROM [tabla] <\/p>\n<div class=\"title\"> PIVO<\/div>\n<p> ( <\/p>\n<div class=\"title\"> [funci\u00f3n de agregaci\u00f3n]([columna de valor]<\/div>\n<p> FOR [columna pivote] IN ([lista de columnas pivote]) <\/p>\n<div class=\"title\"> ) AS [alias<\/div>\n<div class=\"newlinediv\"><\/div>\n<p> En esta sintaxis, la [lista de columnas] especifica las columnas que desea devolver de la tabla, mientras que la [tabla] especifica la tabla que desea consultar. La [funci\u00f3n de agregaci\u00f3n] especifica la funci\u00f3n que desea utilizar para agregar los datos, mientras que la [columna de valor] especifica la columna a la que desea aplicar la funci\u00f3n. La [columna pivotante] especifica la columna que desea pivotar, y la [lista de columnas pivotantes] especifica los valores que se utilizar\u00e1n para rellenar las nuevas columnas. Por \u00faltimo, el [alias] especifica un alias para la tabla resultante. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> En general, Pivot T-SQL es una poderosa herramienta que puede ser utilizada para transformar y agregar datos de una manera m\u00e1s estructurada y organizada. Al entender c\u00f3mo utilizar Pivot T-SQL, puede obtener informaci\u00f3n sobre sus datos que de otra manera no hubiera sido posible, lo que le permite tomar decisiones m\u00e1s informadas y obtener mejores resultados.<\/p><\/div>\n<div class=\"questions\">\n<div class=\"questionstitle\">FAQ<\/div>\n<div class=\"question\">\n<div class=\"qtitle\"> \u00bfC\u00f3mo utilizar la funci\u00f3n PIVOT en SQL?<\/div>\n<p> La funci\u00f3n PIVOT en SQL se utiliza para transformar filas en columnas, y se suele utilizar con funciones de agregaci\u00f3n. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> La sintaxis b\u00e1sica para utilizar PIVOT es la siguiente: <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> \u00ab` <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SELECT [columna no pivotada], <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> [columna pivotada 1], [columna pivotada 2], &#8230;, [columna pivotada n] <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> FROM <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ( <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SELECT [columna no pivotada], [columna pivotada], [valor] <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> FROM [tabla] <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ) AS [alias] <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> PIVOT <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ( <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> [aggregate function]([value]) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> FOR [pivoted column] IN ([pivoted column 1], [pivoted column 2], &#8230;, [pivoted column n]) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ) AS [alias]; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> \u00ab` <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Aqu\u00ed, la `[columna no pivotada]` se refiere a las columnas que quieres mantener tal cual, y la `[columna pivotada]` se refiere a la columna que quieres transformar en columnas. La columna `[valor]` contiene los valores que quieres agregar. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Puedes reemplazar `[funci\u00f3n agregada]` con cualquier funci\u00f3n agregada como SUM, COUNT, AVG, etc. <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Por ejemplo, si tienes una tabla llamada `ventas` con las columnas `producto`, `mes` e `importe_ventas`, y quieres pivotar la columna `mes` para que los meses se conviertan en columnas y se agreguen los importes de las ventas, puedes utilizar la siguiente consulta: <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> \u00ab <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SELECT producto, [1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12] <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> FROM <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ( <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SELECT producto, mes, importe_ventas <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> FROM ventas <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ) AS sales_data <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> PIVOT <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ( <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SUM(importe_ventas) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> FOR mes IN ([1], [2], [3], [4], [5], [6], [7], [8], [9], [10], [11], [12]) <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ) AS pivot_table; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> \u00ab` <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Esto le dar\u00e1 un conjunto de resultados con columnas para cada mes y la suma de los importes de las ventas de cada producto en ese mes. <\/p>\n<\/div>\n<div class=\"question\">\n<div class=\"qtitle\"> \u00bfC\u00f3mo utilizar la funci\u00f3n PIVOT en MySQL?<\/div>\n<p> La funci\u00f3n PIVOT no es una funci\u00f3n incorporada en MySQL, pero se puede lograr utilizando una combinaci\u00f3n de funciones agregadas y sentencias condicionales. He aqu\u00ed un ejemplo de c\u00f3mo utilizar PIVOT en MySQL: <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Suponiendo que tenemos una tabla llamada \u00abventas\u00bb con columnas \u00abregi\u00f3n\u00bb, \u00abproducto\u00bb y \u00abimporte_ventas\u00bb, podemos utilizar la siguiente consulta para pivotar los datos por regi\u00f3n y producto: <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> \u00ab` <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SELECT <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> regi\u00f3n, <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SUM(CASE WHEN producto = &#8216;Producto A&#8217; THEN importe_ventas ELSE 0 END) AS &#8216;Producto A&#8217;, <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SUM(CASE WHEN producto = &#8216;Producto B&#8217; THEN importe_ventas ELSE 0 END) AS &#8216;Producto B&#8217;, <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> SUM(CASE WHEN producto = &#8216;Producto C&#8217; THEN importe_ventas ELSE 0 END) AS &#8216;Producto C&#8217; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> FROM <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> ventas <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> GROUP BY <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> regi\u00f3n; <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> \u00ab` <\/p>\n<div class=\"newlinediv\"><\/div>\n<p> Esta consulta devolver\u00e1 una tabla en la que cada fila representa una regi\u00f3n y cada columna representa un producto, con los importes de ventas correspondientes en las celdas.<\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>En el mundo de la manipulaci\u00f3n de datos, la funci\u00f3n Pivot es una poderosa herramienta que puede ser utilizada para transformar filas en columnas, facilitando el an\u00e1lisis y la presentaci\u00f3n de datos en un formato m\u00e1s organizado y estructurado. Pivot T-SQL es una implementaci\u00f3n espec\u00edfica de esta funci\u00f3n que se utiliza habitualmente en SQL Server &#8230; <a title=\"Optimizando la Manipulaci\u00f3n de Datos con la Funci\u00f3n Pivot T-SQL\" class=\"read-more\" href=\"https:\/\/electronica.guru\/con\/optimizando-la-manipulacion-de-datos-con-la-funcion-pivot-t-sql\/\" aria-label=\"Read more about Optimizando la Manipulaci\u00f3n de Datos con la Funci\u00f3n Pivot T-SQL\">Leer m\u00e1s<\/a><\/p>\n","protected":false},"author":1498,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-3458","post","type-post","status-publish","format-standard","hentry","category-wiki"],"_links":{"self":[{"href":"https:\/\/electronica.guru\/con\/wp-json\/wp\/v2\/posts\/3458","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/electronica.guru\/con\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/electronica.guru\/con\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/electronica.guru\/con\/wp-json\/wp\/v2\/users\/1498"}],"replies":[{"embeddable":true,"href":"https:\/\/electronica.guru\/con\/wp-json\/wp\/v2\/comments?post=3458"}],"version-history":[{"count":0,"href":"https:\/\/electronica.guru\/con\/wp-json\/wp\/v2\/posts\/3458\/revisions"}],"wp:attachment":[{"href":"https:\/\/electronica.guru\/con\/wp-json\/wp\/v2\/media?parent=3458"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/electronica.guru\/con\/wp-json\/wp\/v2\/categories?post=3458"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/electronica.guru\/con\/wp-json\/wp\/v2\/tags?post=3458"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}