簡體   English   中英

SQL-獲取聯接表的多個(但不是全部)行的平均值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM