我有一个MySQL表,其中存储了客户的星级评定,所以不同的clientcode:MySQL的 - 选择具有最高平均
裁判,clientcode,日期,评论,明星
同样clientcode可以出现很多次。
我需要选择具有最高平均星号的不同客户端代码。任何建议如何得到这个
我有一个MySQL表,其中存储了客户的星级评定,所以不同的clientcode:MySQL的 - 选择具有最高平均
裁判,clientcode,日期,评论,明星
同样clientcode可以出现很多次。
我需要选择具有最高平均星号的不同客户端代码。任何建议如何得到这个
SELECT
t1.*
FROM
table t1
WHERE
t1.stars IN
(
SELECT
MAX(t2.stars)
FROM
table t2
WHERE
t2.clientcode = t1.clientcode
)
这里没有平均寿。 –
这会显示不同的clientcode
SELECT avg(stars) from t1 group by clientcode;
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
请尝试以下给出的查询恒星的平均值。
select avg(`stars`) AS `avgstar` ,`clientcode` from `t1` group by `clientcode` order by `avgstar` DESC
这里group by clientcode
将获得创纪录的在Descinding为了每个不同clientcode
和order by avgstar
其中avgstar is average of stars field value for each clientcode
。
感谢
感谢大家的建议。我用这个,因为它是最简单的(因此对我来说最简单!)。它工作出色。当我实现它时,我收集了一个数组中的结果,使我能够选择任何前5个结果,这正是我需要的结果 – David
嗨,如果你喜欢这个答案,那么请将它投票并接受这个答案:) –
请告诉我们你已经尝试过:) –
请出示一些示例数据,什么是所需的输出 –