je la requête suivante dans SQL:la requête n'a pas trouvé la colonne, suggère même colonne dans Hive SQL
select midquery.account, midquery.name, midquery.label, midquery.labelfrequency
from(
-- Count the appearance of each label.
select count(*) as labelfrequency, account, name, label
from(
select account, name, label from myTable
) innerquery
group by account, name, label
) midquery
-- Select most frequent values only.
where rank() over
(partition by midquery.account, midquery.name
order by midquery.labelfrequency desc) = 1
L'idée est de trouver l'étiquette la plus fréquente par set nom compte. Quand je lance cette requête, je reçois l'erreur suivante:
Error while compiling statement: FAILED: SemanticException [Error 10002]: Line 12:74 Invalid column reference 'labelfrequency': (possible column names are: labelfrequency, account, name, label)
Je ne comprends pas pourquoi l'interprète ne trouve pas la colonne labelfrequency mais peut suggérer. Avez-vous des suggestions sur la façon d'aborder ce problème?
Modifier: si je déplace le rang() vers la partie sélectionnée, j'obtiens des résultats.
select midquery.account, midquery.name, midquery.label, midquery.labelfrequency,
rank() over (partition by midquery.account, midquery.name
order by midquery.labelfrequency desc)
from(
-- Count the appearance of each label.
select count(*) as labelfrequency, account, name, label
from(
select account, name, label from myTable
) innerquery
group by account, name, label
) midquery