Este artículo aprenderá cómo crear y usar tipos de matriz en SQL estándar. Es bueno tener en cuenta que, aunque las matrices son parte de SQL estándar, las bases de datos como MySQL no admiten de forma nativa las matrices.
Que es una matriz?
Una matriz se refiere a una colección de una lista ordenada de elementos. Las matrices son muy útiles y poderosas. Aprender a trabajar con una matriz puede ayudar a mejorar el rendimiento y proporcionar técnicas complejas de manipulación de datos.
En motores de base de datos como BigQuery y PostgreSQL, una matriz es un tipo incorporado que se puede usar en cualquier lugar de la base de datos.
Sin embargo, a diferencia de PostgreSQL, BigQuery le impide crear matrices multidimensionales.
SQL Crear matriz
La forma más sencilla de crear una matriz es usar su formato literal. Un ejemplo es como se muestra:
SELECCIONAREl código anterior debe crear una matriz llamada my_array con los elementos dentro de los soportes cuadrados.
Una salida de ejemplo es como se muestra:
my_arrayEl segundo método que puede usar para crear una matriz es la función Generate_Array. Esta función solo está disponible en BigQuery.
El siguiente código muestra cómo usar la función Generate_Array para generar una matriz.
SELECCIONAREl código anterior genera una matriz de elementos de 1 a 5. La salida resultante es como se muestra:
my_arrayLa función Generate_Array sigue la sintaxis como se muestra a continuación:
Generate_Array (start_expression, end_expression [, step_expression])Puede usar step_expression para establecer el tamaño de paso para los elementos generados.
Otras funciones similares incluyen:
Puede consultar la documentación sobre las funciones de matriz para obtener más información.
Acceso a elementos de matriz
BigQuery nos permite usar el valor de compensación o el valor ordinal para acceder a elementos en una matriz.
El desplazamiento es un valor basado en 0, mientras que el ordinal está basado en 1.
Considere una consulta de ejemplo a continuación:
SELECCIONAREn la consulta, usamos la función Generate_Array para generar una matriz con valores que comienzan de 1 a 5.
Luego usamos las funciones compensadas y ordinales para obtener el primer elemento en la matriz.
El código anterior debería devolver:
offset_0 ordinal_0Puede elegir cualquier método de acceso a la matriz que desee usar. Por ejemplo, elija Offset si prefiere un índice basado en 0; De lo contrario, elija Ordinal.
Encontrar la longitud de la matriz
Para obtener la longitud de una matriz, puede usar la función array_length como se muestra:
SELECCIONAREsto debería devolver la longitud de la matriz como:
f0_La longitud de la matriz se refiere al número de elementos en la matriz.
Convertir la matriz en filas
Para convertir una matriz en un conjunto de filas, use la función Unnest como se muestra a continuación:
SELECCIONAREl código anterior crea una matriz de números pares de 0 a 20 y los convierte en filas utilizando la función innata.
La salida resultante se muestra a continuación:
inclusoPuede obtener más información sobre el comando inneceso en el tutorial vinculado.
Convertir la matriz a cadena
Si tiene una matriz de cadenas, puede convertirlo en una cadena usando la función Array_To_String.
El uso del ejemplo es como se muestra:
SELECCIONAREl código anterior convierte la matriz de cadenas en una sola cadena. La sintaxis de la función es:
Array_to_string (array_expression, delimiter [, null_text])Conclusión
Este artículo proporcionó el conocimiento fundamental sobre cómo trabajar con matrices en SQL estándar utilizando BigQuery. Hay más sobre el tipo de matriz más allá del alcance de este tutorial. Verifique los recursos a continuación para explorar más.
https: // nube.Google.com/bigQuery/docs/reference/Standard-SQL/Arrays
https: // nube.Google.com/bigQuery/docs/reference/Standard-sql/array_functions
Gracias por leer, y espero que lo hayas disfrutado!!