クライアントの星評価が保存されているmysqlテーブルがあるので、次のようにします。
参照、クライアントコード、日付、コメント、星
同じ 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
のレコードを取得します。clientcode
order by avgstar
avgstar is average of stars field value for each clientcode
ありがとう
SELECT
t1.*
FROM
table t1
WHERE
t1.stars IN
(
SELECT
MAX(t2.stars)
FROM
table t2
WHERE
t2.clientcode = t1.clientcode
)
これは、個別のクライアントコードの星の平均値を示します
SELECT avg(stars) from t1 group by clientcode;