No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripción 🔥

Aprende todo un fin de semana sin pagar una suscripción 🔥

Regístrate

Comienza en:

3D
23H
44M
29S

Queries Avanzadas

20/28
Recursos

Aportes 25

Preguntas 1

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Queries de agrupación

ℹ️ Definición
La cláusula FACET separa y agrupa los resultados por los valores de los atributos.

.
Los facets están ordenadas de manera descendente por el primer campo que provee la cláusula SELECT .
.
Cuando agrupamos la información con las funciones min()max()percentile()average() o count() , el orden se administrado por la misma función.
.

📌 Consejo
Usamos FACET ... AS para asignar un nombre que simplifique el resultado final, representado en la gráfica.

.
Por ejemplo:
.

Si deseamos agrupar y separar dicha información en segmentos más específicos.

Supongamos que deseamos un conteo de todas las transacciones cuyo código de estado sea 200 y 304.

SELECT count(*) 
FROM Transaction
FACET cases(
 WHERE http.statusCode = '200' as 'success 200',
 WHERE http.statusCode = '304' as 'complete 304'
) as 'code'

.

Queries de filtrado

Cláusula de equivalencia

ℹ️ Definición
La cláusula WHERE , filtra los resultados que cumplan completamente la(s) condicione(s) especificada(s) en la definición.

.
Si se desea especificar más de una definición, es posible dividir la operación mediante operadores OR y AND .
.
Si se desea lanzar un JOIN , es posible utilizar agregación de queries.
.
Por ejemplo:
.

Si deseamos agrupar y sesgar el total de operaciones tipo campana.

SELECT max(rpm)
FROM (
  SELECT count(*) as rpm
  FROM Transaction
)

.

Cláusulas para periodos

ℹ️ Definición
La cláusula TIMESERIES permite segmentar en periodos de tiempo específico la información retornadas.

.
Para indicar el tiempo, se usa el formato integer units donde TIMESERIES 1 minute, permite segmentar la información por minuto.
.
Si se desear personalizar la operación para optimizar los segmentos en una ventana de respuestas, se puede combinar con los argumentos MAXAUTOSLIDE BY .
.
Por ejemplo:
.

Obtener el promedio de la duración por operaciones desde hace 1 día, ajustada al número máximo de intervalos permitidos para un período de tiempo determinado.

SELECT average(duration)
FROM Transaction
SINCE 1 day ago TIMESERIES MAX

.

ℹ️ Definición
La cláusula SINCE permite retornar información al definir un tiempo inicial.

.
La cláusula SINCE posee como valor default 1 hour ago . Sin embargo, es posible utilizar otro tipo de formato, por ejemplo:
.

  • Timestamps YYYY-MM-DD HH:MM:SS ZZZZ
  • Tiempos relativos YESTERDAYTODAYSUNDAY
  • Soporte temporal con THIS y LAST combinado con YEARQUARTERMONTHWEEKDAYHOURMINUTESECOND

.

ℹ️ Definición
La cláusula UNITL se usa para especificar un tiempo final a sesgar.

.
Por default UNTIL tiene por valor NOW .
.
Si se desear tomar límites de operación temporales, se combina SINCE o UNTIL para comparación donde la cláusula COMPARE WITH nos permitirá comparar la operación temporal con su equivalente.
.
Por ejemplo:
.

Obtener el promedio de duración por vista desde hace 1 día con ayer.

SELECT average(duration)
FROM PageView
SINCE 1 day AGO COMPARE WITH 1 day AGO
SELECT count(*) FROM PageView
SELECT count(*) FROM PageView FACET countryCode
SELECT count(*) FROM PageView WHERE countryCode = 'MX' FACET city

1.- Count all of the PageViews

SELECT count(*) FROM PageView

2.- Count all of the PageViews grouped by country

SELECT count(*) FROM PageView FACET countryCode

3.- Count all of the PageViews where a specific country is grouped by city

SELECT count(*) FROM PageView WHERE countryCode = 'EC' FACET city  

para entender estas clases deben hacer el curso de sql para aprender mejor, lo demas se hace con la practica y busquen usarlo con docker

Mi solución al lab: Pseudo Queries

SELECT count(*) FROM PageViews

SELECT count(*) FROM PageViews FACET country

SELECT count(*) From PageViews WHERE countryCode = 'CO' FACET city

Actualización del Dashboard:


Query para encontrar las paginas mas visitadas en una hora gracias al evento BrowserInteraction 🤯

Mostrar la visitas de la web FoodMe

SELECT count(*) FROM PageView

SELECT count(*) FROM PageView

SELECT count(*) FROM PageView FACET countryCode

SELECT count(*) FROM PageView WHERE countryCode =‘MX’ FACET city

Visiten mi sitio!
https://juicy-dandy-iridium.glitch.me/
Gracias

Mi Dashboard

Así va quedando, ¿me ayudan con datos de otros países?

🔗 Ver proyecto

El lenguaje de consultas esta muy chilo, es muy parecido a SQL. La curva de aprendizaje es rapido.

Resultado del Lab: Pseudo Queries

1 SELECT count(*) FROM PageView
 
2 SELECT count(*) FROM PageView FACET countryCode
  
3 SELECT count(*) FROM PageView WHERE countryCode='CO' FACET city 

Cuando sabes ingles, SQL es como leer seudocódigo o enviarle una carta al computador, es lenguaje muy alto nivel, jaja

En el pdf que esta en recursos en las primeras clases aparecen todas las diapositivas que el profe muestra en las clase, en las pag. 106 y 107 estan las 6 query que dice en esta clase.

  1. SELECT count(*) FROM PageView
    -Count all of the PageViews
    -Cuente todas las páginas vistas

2)SELECT count(*) FROM PageView FACET countryCode
-Count all of the PageViews grouped by country
-Cuente todas las páginas vistas agrupadas por país

  1. SELECT count(*) FROM PageView WHERE countryCode =‘VE’ FACET city
    -Count all of the PageViews where a specific
    country is grouped by city
    -Cuente todas las vistas de página en las que se
    el país está agrupado por ciudad

  1. SELECT count(*) FROM Transaction
    -Count all of the transaction
    -Contar toda la transacción

5)SELECT count(*) FROM Transaction FACET name
-Count all of the Transactions grouped by the name
of transactions
-Cuente todas las Transacciones agrupadas por el nombre
de transacciones


6)SELECT count(*) FROM Transaction WHERE appName=‘FoodMe’ FACET name
-Count all of the Transactions where the appName is ’FoodMe’
grouped by the name of transactions
-Cuente todas las Transacciones donde el nombre de la aplicación es 'FoodMe’
agrupados por el nombre de las transacciones

SELECT count()FROM PageView
SELECT uniqueCount(session)FROM PageView FACET countryCode SINCE 1 week ago
SELECT count(
) FROM PageView WHERE countryCode=‘AR’ FACET city SINCE 1 week ago

Hola, está es mi solución al lab: Pseudo Queries

SELECT count(*) FROM PageViews
SELECT count(*) FROM PageViews FACET country
SELECT count(*) From PageViews WHERE countryCode = 'CO' FACET city
SELECT count() FROM PageView
SELECT count() FROM PageView FACET countryCode
SELECT count(*) FROM PageView WHERE countryCode =‘EC’ FACET city SINCE 1 week ago
SELECT count(*) FROM PageView
SELECT count(*) FROM PageView FACET countryCode
SELECT count(*) FROM PageView WHERE countryCode = 'BO' FACET city
SELECT count(*) FROM BrowserInteraction WHERE appName = 'FoodMe' FACET browserInteractionName

SELECT count() FROM PageView
SELECT count(
) FROM PageView FACET countryCode
SELECT uniqueCount(countryCode) FROM PageView FACET city

SELECT count(*) FROM BrowserInteraction FACET browserInteractionName WHERE appName =‘Foodme’