繁体   English   中英

MySQL:显示平均值或空值

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM