我有一个mysql表,其中存储了客户端的星级,如下所示:
ref,客户代码,日期,注释,星星
相同的客户端代码可以多次出现。
我需要选择不同的客户代码和最高的平均星星数。有什么建议怎么得到这个吗
发布于 2012-10-31 11:28:27
SELECT
t1.clientcode clientcode,
t2.sum sum,
t3.count count,
CASE t3.count WHEN 0 THEN 0 ELSE t2.sum / t3.count END average
FROM
t1
LEFT JOIN
(
SELECT
clientcode,
SUM(stars) sum
FROM t1
GROUP BY clientcode
) t2 ON t1.clientcode = t2.clientcode
LEFT JOIN
(
SELECT
clientcode,
COUNT(stars) count
FROM t1
GROUP BY clientcode
) t3 ON t1.clientcode = t3.clientcode发布于 2012-10-31 11:20:15
SELECT
t1.*
FROM
table t1
WHERE
t1.stars IN
(
SELECT
MAX(t2.stars)
FROM
table t2
WHERE
t2.clientcode = t1.clientcode
)发布于 2012-10-31 11:28:01
这将显示不同客户端代码的恒星平均值。
SELECT avg(stars) from t1 group by clientcode;https://stackoverflow.com/questions/13156627
复制相似问题