間違ったデータを返す MYSQL スクリプトを作成しました。私は SQL に精通していますが、このクエリは正しい結果を返しません。誰かが見て、何が起こっているかを見ることができますか。問題は noOfBids と noOfRatedTimes です。値は両方の列で同じであり、大きな値でもあります。
select
a.user_name as userName,
coalesce(count(b.sp_user_name),0) as noOfBids,
coalesce(ROUND(AVG(b.a_amount),2),0) as avgAmount,
coalesce(count(d.sp_user_name),0) as noOfRatedTimes,
coalesce(ROUND(AVG(d.user_rate),2),0)
from users a
left join project_imds b
on b.sp_user_name = a.user_name
left join projects c
on b.project_code = c.project_code
left join sp_user_rating d
on d.sp_user_name = b.sp_user_name
where a.user_type = 'SP'
and a.active = 'Y'
group by a.user_name
order by coalesce(ROUND(AVG(d.user_rate),2),0) desc;
一時テーブルを作成して平均値を取得し、これをメインクエリに結合することで、これに関する回避策を作成しました。