Si es un nuevo usuario de Redshift, es posible que la sintaxis SQL varíe del SQL que ha escrito en otros almacenes de datos.
Cada almacén de datos tiene su propia versión de SQL y Redshift no es una excepción.
Al principio, puede resultar frustrante descubrir que sus funciones favoritas no existen. Sin embargo, hay muchas funciones excelentes de Redshift que puedes aprovechar en tu código.
En este artículo, lo guiaré a través de las funciones de Redshift más útiles que he descubierto en mi trabajo. Cada función incluye una definición y un ejemplo de código de cómo usarla.
PIVOTE es una función integrada en Redshift que le permite, bueno, pivotar sus datos. ¿Qué quiero decir con esto? Pivotar le permite remodelar sus datos donde los valores de las filas se convierten en columnas o los valores de las columnas se convierten en filas.
PIVOT puede ayudarte:
- contar valores en una columna
- valores de fila agregados
- derivar campos booleanos basados en valores de columna o fila
Recientemente utilicé PIVOT en Redshift para saber si diferentes páginas estaban activas o no para cada usuario. Para hacer esto, necesitaba PIVOTAR el page_typecampo y utilizar el user_id campo para agrupar los datos.
Establecí una condición dentro de la función PIVOT para CONTAR
para cada uno de los diferentes tipos de página, ya que cada usuario sólo podría tener una de cada tipo.
Tenga en cuenta que si un usuario puede tener varias páginas de cada tipo, usar COUNT para devolver un valor booleano no funcionará.
SELECT
id,
has_homepage::boolean,
has_contacts_page::boolean,
has_about_page::boolean
FROM (SELECT id, page_type FROM user_pages WHERE is_active)
PIVOT(COUNT(*) FOR page_type IN ('home' AS has_homepage, 'contact' AS has_contact_page, 'about' AS has_about_page))
El código se veía así: page_type Sin el uso de PIVOT, habría tenido que crear un CTE separado para cada
y luego ÚNASE a todos estos juntos en el CTE final. El uso de PIVOT hizo que mi código fuera mucho más claro y conciso.