[英]Invalid use of group function with no aggregate function in where clause
收到我未正確分組或我正在分組的錯誤的消息是不允許的,但我進行了一些搜索,沒有看到類似的情況。 發生此錯誤的所有其他帖子在where子句中都有聚合函數。 除非我完全刪除分組,否則什么都不會更改。 在where子句中使用實際日期,而不是
>= NOW() - INTERVAL 30 DAY
不會改變結果。
我正在尋找支持人員的姓名,應用於他們所處案件的標簽,該人員在該標簽上的平均評分以及他們使用該標簽處理的罰單數量。
這是我正在運行的查詢:
select a.public_name, 'settings', format(avg(r.rating),2) as 'average',
count(label_name), pk_case_id
from bi.support_agents_list a
join bi.support_ratings_agents sra
on a.desk_id = sra.agent_desk_id
join bi.support_ratings r
on sra.response_id = r.response_id
and r.survey_id = sra.survey_id
join bizdw.support_labels_assigned_v2 l
on l.fk_case_id = r.pk_case_id
where r.date_submitted >= NOW() - INTERVAL 30 DAY
and a.start_date < '2014-01-22'
and a.end_date is null
and lower(l.label_name) in ('settings',
'settings-contributor'
'settings-socialaccount')
group by a.public_name, 'settings', format(avg(r.rating),2), pk_case_id
order by a.public_name, format(avg(r.rating),2), label_name desc
這是您的group by
子句:
group by a.public_name, 'settings', format(avg(r.rating),2), pk_case_id
常量'settings'
是不必要的(允許,但它什么也沒做)。 format(avg(r.rating),2)
導致錯誤。 該子句可以簡單地是:
group by a.public_name, pk_case_id
您正在基於format(avg(r.rating),2)和其他列進行分組,甚至avg(r.rating)本身也將基於整個表或基於分組依據進行計算,因此您無法在group by中包含一個計算列,這在邏輯上是不正確的。
如果這是您的要求,那么首先您必須基於產品名稱和其他必需列在派生查詢中獲得avg(rating),然后可以將此派生表與主表連接起來,還可以在group by子句中包含avg(rating)列以及其他列,例如產品名稱等。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.