J'ai un tableau avec deux colonnes : id
y score
. J'aimerais créer une troisième colonne qui équivaut au quantile que l'indice de performance d'un individu score
tombe dans. J'aimerais faire cela dans le standardSQL de BigQuery.
Voici my_table
:
+----+--------+
| id | score |
+----+--------+
| 1 | 2 |
| 2 | 13 |
| 3 | -2 |
| 4 | 7 |
+----+--------+
et ensuite j'aimerais avoir le tableau suivant (exemple montré avec les quartiles, mais je serais intéressé par les quartiles/quintiles/déciles)
+----+--------+----------+
| id | score | quaRtile |
+----+--------+----------+
| 1 | 2 | 2 |
| 2 | 13 | 4 |
| 3 | -2 | 1 |
| 4 | 7 | 3 |
+----+--------+----------+
Il serait excellent que cela fonctionne sur 100 millions de lignes. J'ai regardé autour de moi pour voir quelques solutions qui semblent utiliser ancien système SQL et le solutions utilisant RANK()
ne semblent pas fonctionner pour les très grands ensembles de données. Merci !