通过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