これが私のクエリです
select
A.search_parameters,
reseller_count,
reseller,
num
from
(select
search_parameters,
count(distinct(reseller)) as reseller_count
from all_lookups
group by search_parameters)A
join
(select
search_parameters,
reseller,
count(*) as num
from all_lookups
group by reseller,search_parameters)B
on A.search_parameters=B.search_parameters
where a.search_parameters not like '%addsomekeywords%'
and a.search_parameters not like '%add-some%'
order by reseller_count DESC,num
DESC limit 1000
なぜかreseller_countで結果がまとめられているのですが、search_parametersでまとめてほしいです。where 句の後に A.search_paramters でグループを追加しようとしましたが、これにより「select list expression not generated by aggregate output (missing from GROUP BY clause?)」というエラーが発生します。これを使用していることに注意することも重要です。 Cloudera Impala でクエリを実行しますが、同じ MySQL ルール/構文が引き続き適用されると思われます
ここに私が得ているものの例があります
A.search_parameter|reseller_count|reseller|num
hello | 2 | abc |556
hi | 2 | tre |54
hello | 2 | xyz |9
hi | 2 | ytu |4
そして私が欲しいのは
A.search_parameter|reseller_count|reseller|num
hello | 2 | abc | 556
hello | 2 | xyz | 9
hi | 2 | tre | 54
hi | 2 | ytu | 4
基本的にreseller_countが同じ「search_parameters」は全てランダムにまとめてあるのですが、search_parameterごとにまとめて欲しいです
ありがとう