2 votes

Calculer le pourcentage de catégories dans une colonne dans Hive

J'ai une table, colors dans Hive qui ressemble à ça :

 id cname
 1 Blue
 2 Green
 3 Green
 4 Blue
 5 Blue

J'ai besoin d'aide pour écrire une requête Hive qui donne les pourcentages de chaque couleur dans la colonne cname. Quelque chose qui ressemble à ceci :

Blue  60%
Green 40%

Merci d'avance !

1voto

leftjoin Points 6979

Utilisation des fonctions d'analyse :

select cname, concat(pct, ' %') pct
from
(
select (
        count(*) over (partition by cname)/
        count(*) over ()
       )*100 as pct,
       cname
  from (--Replace this subquery with your table
        select stack (5,
                      1, 'Blue',
                      2, 'Green',
                      3, 'Green',
                      4, 'Blue',
                      5, 'Blue' )  as (id, cname)

        ) colors
)s
group by cname, pct;

Résultat :

OK
Blue    60.0 %
Green   40.0 %

Il suffit de remplacer colors sous-requête avec votre table

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X