通過ClientRevenue進行分組將嘗試對相似的值進行分組,並且不具有邏輯意義。
首先,爲了獲取不同的狀態,需要在GROUP BY語句中使用clientstate列。
因此,代碼如下:
SELECT clientstate, AVG(clientrevenue)
FROM Source_Table
GROUP BY clientstate --this would get you distinct states
現在,考慮每個國家的2個客戶端,這是不是一個HAVING語句的條件。 HAVING語句根據您正在使用的聚合函數來限制查詢結果。例如,在上述代碼中,聚合函數是AVG(clientrevenue)。所以,我們只能在HAVING中使用它。除非在SELECT中使用,否則我們不能添加count(*)。
所以,你需要將其添加爲條件像
SELECT clientstate, AVG(clientrevenue)
FROM Source_Table A
WHERE (SELECT count(DISTINCT client_ID) FROM Source_Table B
WHERE A.clientstate = B.clientstate) >= 2 --Condition
GROUP BY clientstate --this would get you distinct states
當我寫錯誤「您的查詢不包括指定表達式‘clientstate’作爲一個聚集函數的一部分。這是什麼意思? – Jeff
真棒,謝謝!另外一個部分,我怎麼才能讓它拉到至少有兩個客戶端的狀態? – Jeff
沒關係,只是想通了。謝謝@ M. Ali! – Jeff