[英]SQL - Get average for multiple, but not all, rows of joined table
我正在嘗試使用ROUND(AVG(travisor_review.rating))獲得每個交易人的四舍五入平均評分。 但是,這將返回所有評論的平均值,並且僅返回一行,這時每個交易員都應該有一行,並且該交易員的平均值應該只有一行。 我的查詢如下(我希望您可以從中推斷出表結構)。
SELECT travisor_tradesperson.name, travisor_catagory.catname,
travisor_city.cityname, travisor_company.cname,
travisor_company.description, ROUND(AVG(travisor_review.rating))
FROM `travisor_tradesperson`
INNER JOIN travisor_company
ON travisor_tradesperson.company = travisor_company.id
INNER JOIN travisor_catagory
ON travisor_tradesperson.catagory = travisor_catagory.id
INNER JOIN travisor_city
ON travisor_tradesperson.city = travisor_city.id
INNER JOIN travisor_review
ON travisor_review.tradesperson = travisor_tradesperson.id
WHERE travisor_catagory.catname = '$catagory'
AND travisor_city.cityname = '$city'
您需要匯總
SELECT travisor_tradesperson.name, travisor_catagory.catname,
travisor_city.cityname, travisor_company.cname,
travisor_company.description, ROUND(AVG(travisor_review.rating))
FROM `travisor_tradesperson`
INNER JOIN travisor_company
ON travisor_tradesperson.company = travisor_company.id
INNER JOIN travisor_catagory
ON travisor_tradesperson.catagory = travisor_catagory.id
INNER JOIN travisor_city
ON travisor_tradesperson.city = travisor_city.id
INNER JOIN travisor_review
ON travisor_review.tradesperson = travisor_tradesperson.id
WHERE travisor_catagory.catname = '$catagory'
AND travisor_city.cityname = '$city'
group by travisor_tradesperson.name, travisor_catagory.catname,
travisor_city.cityname, travisor_company.cname,
travisor_company.description
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.