La versatilidad de SQL como lenguaje de consulta de DBMS ha aumentado a lo largo de los años. Su amplia utilidad y versatilidad lo convierten en el favorito de todos los tiempos para todos los analistas de datos.
Homepage
/
Headline
/
Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Lee mas. La versatilidad de SQL como lenguaje de consulta de DBMS ha aumentado a lo largo de los años. Su amplia utilidad y versatilidad lo convierten en el favorito de todos los tiempos para todos los analistas de datos. Hay bastantes funciones de nivel avanzado además de las regulares de SQL. Estas funciones se conocen comúnmente como funciones de ventana. Si está tratando con datos complejos y desea realizar cálculos avanzados, puede usarlos para aprovechar al máximo sus datos. googletag.cmd.push(function() { googletag.display('div-gpt-ad-1494450502098-primis'); }); La importancia de las funciones de ventana Hay varias funciones de ventana disponibles en SQL y cada una le ayudará a realizar una serie de cálculos. Desde la creación de particiones hasta la clasificación de filas o la asignación de números de fila, estas funciones de ventana hacen un poco de todo. Las funciones de ventana son beneficiosas cuando aplica funciones agregadas sobre un conjunto de datos específico o una colección de filas. Estas funciones van más allá de las funciones de agregación que proporciona GROUP BY. Sin embargo, la principal diferencia es que, a diferencia de la función de agrupación, sus datos no se combinan en una sola fila. No puede usar funciones de ventana dentro de las instrucciones WHERE, FROM y GROUP BY. Sintaxis de una función de ventana Cuando se refiere a cualquier función de ventana, debe seguir la estructura de sintaxis predeterminada para que funcione correctamente. Si estructura el comando incorrectamente, obtendrá un error y su código no se ejecutará. Esta es la sintaxis predeterminada: SELECT columnname1,{window_function}(columnname2)OVER([PARTITION BY columnname1] [ORDER BY columnname3]) AS new_columnFROM table_name; Donde: coulmnname1 es el nombre de la primera columna que le gustaría seleccionar. {window_function} es el nombre de una función agregada como sum, avg, count, row_number, rank o dense_rank. columnname2 es el nombre de la columna en la que está aplicando la función de ventana. columnname3 es el nombre de la tercera columna, que formará la base para la partición. new_column es una etiqueta para la nueva columna que puede aplicar con la palabra clave AS. table_name es el nombre de la tabla de origen. Las funciones de ventana son diferentes de algunos de los comandos SQL más básicos. A diferencia de las funciones agregadas en SQL, puede usar estas funciones de ventana para realizar funciones avanzadas. Preparación del conjunto de datos Puede usar la declaración CREATE TABLE para crear una nueva tabla en SQL. Aquí hay un conjunto de datos de muestra que usará esta guía para definir algunas funciones de ventana: Orden Fecha Categoría Color Precio de venta Cantidad 11-08-2016 Teléfonos Negro 907.152 6 06-12-2016 Carpetas Verde 18.504 3 10-11-2015 Electrodomésticos Amarillo 114.9 5 11 -10-2015 Mesas Marrón 1706.184 9 09-06-2014 Teléfonos Rojo 911.424 4 09-06-2014 Papel Blanco 15.552 3 09-06-2014 Carpetas Negro 407.976 3 09-06-2014 Electrodomésticos Amarillo 68.81 5 09-06-2014 Carpetas Verde 2.544 3 09-06-2014 Almacenamiento Naranja 665,88 6 09-06-2014 Almacenamiento Naranja 55,5 2 15-04-2017 Teléfonos Negro 213,48 3 05-12-2016 Carpetas Verde 22,72 4 22-11-2015 Electrodomésticos Verde 60,34 7 22- 11-2015 Sillas Marrón oscuro 71.372 2 13-05-2014 Muebles Naranja 190.92 5 Explicación de la función Suma Suponga que desea calcular las ventas totales para cada valor dentro de la columna de categoría. Así es como puede hacerlo: SELECCIONE categoría, color, suma (precio_de_venta) SOBRE (ordenar por categoría) AS total_salesFROM sahil.sample; En el código anterior, la instrucción SQL extrae la categoría y el color del conjunto de datos original. La función sum suma la columna sale_price. Lo hace por categoría, ya que la cláusula OVER especifica el orden por columna de categoría. El resultado final es el siguiente: Cómo usar la función de ventana Avg() Al igual que la función sum, puede calcular el promedio por fila de datos con la función avg. En lugar de la suma, obtendrá una columna con las ventas promedio. SELECCIONE categoría, color, promedio (precio_de_venta) SOBRE (ordenar por categoría) COMO avg_salesFROM sahil.sample; Aprenda a usar la función de ventana Count() Similar a las funciones sum y avg, la función de ventana count en SQL es bastante sencilla y funciona de la misma manera que las otras dos funciones. Cuando pasa la función de conteo, obtiene el conteo total de cada valor dentro de la nueva columna. Así es como puede calcular el conteo: SELECCIONE categoría, color, conteo (categoría) SOBRE (ordenar por categoría) AS item_countFROM sahil.sample; La función de ventana Row_Number() A diferencia de algunas de las otras funciones de ventana enumeradas anteriormente, row_number() funciona de manera ligeramente diferente. La función row_number() asigna un número de fila a cada fila, según la cláusula order by. El número de fila inicial es 1; el número_fila asigna un valor correspondiente a cada fila hasta el final. Esta es la estructura básica de una función número_fila(): SELECT categoría, color,número_fila()OVER (ordenar por categoría) AS número_artículoDE sahil.sample; Pero, ¿qué sucede si desea asignar números de fila separados a cada elemento de categoría? La sintaxis anterior establece un número de serie móvil, independientemente de los elementos almacenados en la categoría. Por ejemplo, la categoría de electrodomésticos debe tener su numeración exclusiva, seguida de carpetas, etc. Puede usar la función de partición para realizar esta tarea simple pero práctica. La palabra clave de partición asigna números de fila designados en función de cada elemento de categoría. SELECCIONE categoría, color, número de fila () SOBRE (partición por orden de categoría por categoría) AS número de artículo DE sahil.sample; Las funciones Rank() y Dense_Rank() La función rank() funciona de manera diferente a la función row_number(). Debe especificar el nombre de la columna dentro de la orden por función, para usarlo como base para definir los valores de rango. Por ejemplo, en el siguiente ejemplo de código, puede usar la columna de color dentro de la orden por función. Luego, la consulta usará ese orden para asignar un valor de rango a cada fila. Puede usar la sintaxis de código a continuación para pasar una función de rango en SQL: SELECCIONE categoría, color, rango () SOBRE (ordenar por color) AS item_rankFROM sahil.sample ; Eche un vistazo a la salida para comprender cómo funciona esta función. La función ordenar por ordena la categoría de color, mientras que la función de clasificación asigna una clasificación a cada color. Sin embargo, todos los mismos valores de color tienen el mismo rango, mientras que los diferentes colores tienen rangos separados. El color negro aparece tres veces dentro del conjunto de datos; en lugar de asignar un valor de rango de 1, 2 y 3, los elementos de color negro obtienen un rango de 1. Sin embargo, el siguiente color marrón obtiene un rango de 4 en lugar del rango 2. La función de rango omite valores y asigna el siguiente valor cronológico a las diferentes entradas. Si desea asignar un valor de rango más significativo, puede usar la función dense_rank(). La función dense_rank no omite ningún valor de rango durante la orden por función. Por ejemplo, los tres primeros elementos de color (negro) tendrán rango 1. Sin embargo, el siguiente color (marrón) no tendrá rango 4, sino rango 2, que es el siguiente número cronológico en la lista de numeración. La función dense_rank es una función de ventana más práctica, ya que asigna un valor significativo a la lista de elementos. Así es como puede usar la función dense_rank en SQL: SELECCIONE categoría, color, dense_rank () SOBRE (ordenar por color) AS item_rankFROM sahil. muestra; Y aquí hay un ejemplo
de cómo se verá la salida de esta función: Las funciones de SQL para las funciones de ventana de RescueSQL son ideales para llevar a cabo operaciones analíticas avanzadas. Sin embargo, puede usar muchos otros comandos SQL para asegurarse de que sus habilidades computacionales sean de primera categoría. Cuando combina y calcula múltiples resultados de una sola vez, no hay nada mejor que usar las subconsultas de SQL. Las subconsultas son una excelente herramienta para realizar funciones avanzadas, mejorando la calidad de sus resultados. Dependiendo de la necesidad de la hora, puede personalizar sus consultas y hacerlas más efectivas para satisfacer sus requisitos.
Read Now