[英]MySQL: displaying averages or null
我有两张表产品和评论,有些产品有评论,有些没有。 我想显示产品,对于有评论的产品,我想计算它们的平均评分,如果产品没有评论,则平均评分应显示为null
。
例子:
产品:
| Id | Name |
| 1 | dog |
| 2 | cat |
审查:
| Id | Rating|
| 1 | 1 |
| 1 | 5 |
应该显示什么:
| Id | Name | Avg_rating |
| 1 | dog | 3 |
| 2 | cat | NULL |
如何做到这一点?
您可以left join
,aggregate 和round()
:
select p.id, p.name, round(avg(r.rating)) avg_rating
from product p
left join review r on r.id = p.id
group by p.id, p.name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.