J'essaye d'écrire une requête pour obtenir des comptes de valeurs dans différentes gammes. Disons que ma table a une colonne appelée «Nom» et une autre colonne appelée «Valeur» qui est numérique.Oracle Bucketing Values
La colonne « Value » peut prendre des valeurs de 1 à 100.
Actuellement, je suis en train d'écrire une requête comme
select count(1) from table where value between 1 and 10
union all
select count(1) from table where value between 11 and 80
union all
select count(1) from table where value between 81 and 100.
La requête me donne les résultats mais semble effectuer veeeeeerrrrry lent.
Y a-t-il une meilleure façon de procéder?
Veuillez noter que je ne peux pas partitionner la table en fonction des valeurs de la colonne 'Valeur', car j'ai aussi d'autres colonnes.
Modifier
Ok je vais modifier la requête ci-dessus pour
select count(distinct names) from table where value between 1 and 10
union all
select count(distinct names) from table where value between 11 and 80
union all
select count(distinct names) from table where value between 81 and 100.
Bon mais pas assez bon !! –
@Anand - Pouvez-vous expliquer ce qui est "pas assez bon" signifie spécifiquement? Les résultats ne sont-ils pas tout à fait ce que vous cherchez? Si oui, pouvez-vous donner des détails sur ce que la requête est ou ne retourne pas correctement? –
J'ai modifié ma requête pour compter distinct –