以下は、group by文で集約カラムを使用するとエラーをスローするSQLクエリーです。 MySQLで効率的に行う方法をアドバイスしてください。GROUP BY文の集約カラムの使用 - MYSQL
select
CASE
WHEN avg(sm.pace)<0.30 THEN 'Ineligible'
WHEN avg(sm.pace)>=0.30 AND avg(sm.pace)<0.40 THEN 'Tier1'
WHEN avg(sm.pace)>=0.40 AND avg(sm.pace)<0.50 THEN 'Tier2'
WHEN avg(sm.pace)>=0.50 AND avg(sm.pace)<0.75 THEN 'Potential'
WHEN avg(sm.pace)>0.75 THEN 'Inline' END AS Category,
, ROUND(SUM(sm.balance_due),2)
FROM SUMMARY sm
GROUP BY Category
質問を編集し、サンプルデータと希望する結果を提供してください。クエリは意味をなさない。 –
エラーをスローすると、メッセージを表示します – Jens
しかし、あなたは 'case'式でも集計しています。 mysqlが許可するのは分かっていますが、一般的なルールは 'group by 'が定義されている場合、選択されたすべての属性は集約関数または' group by'のいずれかでなければなりません。それは他の方法でも機能します。集約関数が使用されている場合、 'group by 'は定義されなければならないか、または集合全体に集約されます(他の属性は選択できません) – HoneyBadger