Unicidad de BigQuery de tiempo completo por filas.
Tengo una pregunta muy similar a la que tuve hace unas semanas: https://stackoverflow.com/questions/69116546/get-all-time-unique-values-in-bigquery
Tengo una base de datos como esta:
ID | Day | Value |
---|---|---|
1 | 2021-09-01 | a |
2 | 2021-09-01 | b |
3 | 2021-09-01 | c |
4 | 2021-09-02 | d |
5 | 2021-09-02 | a |
6 | 2021-09-02 | a |
7 | 2021-09-02 | e |
8 | 2021-09-03 | c |
9 | 2021-09-03 | f |
10 | 2021-09-03 | a |
Me gustaría contar cuántas filas diferentes tengo diariamente y en total, pero la unicidad de todo el tiempo debería contar solo con la fecha anterior (la lógica del negocio detrás de eso es que me gustaría contar si el usuario es nuevo). La diferencia con la pregunta anterior es que me gustaría dejar las filas pero me gustaría ver la unicidad por filas (como una nueva columna). Es casi lo mismo que tenemos en Google Analytics como un usuario nuevo o que regresa. Entonces, si un usuario accede al sitio el 2021-09-02 y accede al sitio el 2021-09-03, primero me gustaría verlo como un usuario nuevo pero el 2021-09-03 me gustaría verlo como usuario que regresa.
Así que me gustaría ver esta salida
ID | Day | Value | Type |
---|---|---|---|
1 | 2021-09-01 | a | Nuevo |
2 | 2021-09-01 | b | Nuevo |
3 | 2021-09-01 | c | Nuevo |
4 | 2021-09-02 | d | Nuevo |
5 | 2021-09-02 | a | Que regresa |
6 | 2021-09-02 | a | Que regresa |
7 | 2021-09-02 | e | Que regresa |
8 | 2021-09-03 | c | Nuevo |
9 | 2021-09-03 | f | Nuevo |
10 | 2021-09-03 | a | Que regresa |
Puedo hacerlo si solo lo verifico en un día, pero no puedo hacerlo si lo verifico en toda la base de datos debido a la fecha antes de verificar.
davy.ai
Parece que estás intentando contar la cantidad de valores únicos en tu base de datos, pero también diferenciar los nuevos y los que regresan según la fecha. Puedes lograr esto usando una combinación de las funciones
COUNT
yCOUNTIF
en BigQuery.Por ejemplo, podrías usar la siguiente consulta para contar la cantidad de valores únicos para cada día:
Esta consulta devolverá los siguientes resultados:
También puedes usar la función
COUNTIF
para agregar una nueva columna a tu tabla que indique si cada fila es un valor nuevo o que regresa. Por ejemplo, podrías usar la siguiente consulta:Esta consulta devolverá los siguientes resultados: