SQL/Ruche count distinct de la colonne
Comment puis-je le faire dans la Ruche?
columnA columnB columnC
100.10 50.60 30
100.10 50.60 30
100.10 50.60 20
100.10 70.80 40
Sortie doit être:
columnA columnB No_of_distinct_colC
100.10 50.60 2
100.10 70.80 1
Requête que je pense que c'est correct:
SELECT columnA,columnB,COUNT(distinct column C)
from table_name
group by columnA,columnB
Est-ce correct? SQL est très bien aussi.
Mise à JOUR: Comment puis-je trouver l'écart type de columnC? Besoin de cette asap.
Oui, votre SQL a l'air bien.
La requête a l'air bien, mais à l'aide de
La requête a l'air bien, mais à l'aide de
COUNT(DISTINCT(X))
ne peut pas donner le plus efficace résultat d'exécution. Voir aussi cette réponse: stackoverflow.com/questions/8762064/...OriginalL'auteur user2441441 | 2013-08-06
Vous devez vous connecter pour publier un commentaire.
Oui, c'est presque correct. Mais vous avez une simple erreur. Votre nom de colonne est à l'intérieur de mal à les COMPTER.
Avez-vous vraiment besoin distinctes? Je ne le pense pas. Il devrait fonctionner comme prévu.
"le comte(expr) - Retourne le nombre de lignes pour lesquelles la fourniture d'expression est non-NULL; count(DISTINCT expr[, expr]) - Retourne le nombre de lignes pour lesquelles la fourniture d'expression(s) sont uniques et non-NULLE". cwiki.apache.org/confluence/display/Hive/LanguageManual+UDF
Sans
DISTINCT
, la requête renvoie une ligne "100.10, 50.60, 3" (il y a trois lignes avec 100.10, 50.60 pour A et B respectivement), tandis que l'exigence est de retour "100.10, 50.60, 2" (parce que les deux premières lignes ont la même valeur pour C).N'est-ce pas ce que j'ai fait? COUNT(DISTINCT columnC)?
OriginalL'auteur AgentSQL
SELECT *
requête?Pour développer sur le commentaire précédent il n'y a aucune raison pour laquelle vous avez besoin d'un select * from d'une requête externe sur une requête interne. C'est comme de dire que les red cups, puis obtenir toutes les coupes que vous venez de recevoir.
OriginalL'auteur Margon