[英]How to find top rated 3 product from each category using mysql query
[英]how to find number of product for each category using sql statement
我希望创建一个 sql 查询来列出属于每个电影类别的电影总数。 无法创建任何查询。 任何帮助将不胜感激。
+-------------+-------------+---------------------+
| category_id | name | last_update |
+-------------+-------------+---------------------+
| 1 | Action | 2006-02-15 04:46:27 |
| 2 | Animation | 2006-02-15 04:46:27 |
| 3 | Children | 2006-02-15 04:46:27 |
| 4 | Classics | 2006-02-15 04:46:27 |
| 5 | Comedy | 2006-02-15 04:46:27 |
| 6 | Documentary | 2006-02-15 04:46:27 |
| 7 | Drama | 2006-02-15 04:46:27 |
| 8 | Family | 2006-02-15 04:46:27 |
| 9 | Foreign | 2006-02-15 04:46:27 |
| 10 | Games | 2006-02-15 04:46:27 |
+-------------+-------------+---------------------+
+---------+-------------+---------------------+
| film_id | category_id | last_update |
+---------+-------------+---------------------+
| 1 | 6 | 2006-02-15 05:07:09 |
| 2 | 11 | 2006-02-15 05:07:09 |
| 3 | 6 | 2006-02-15 05:07:09 |
| 4 | 11 | 2006-02-15 05:07:09 |
| 5 | 8 | 2006-02-15 05:07:09 |
| 6 | 9 | 2006-02-15 05:07:09 |
| 7 | 5 | 2006-02-15 05:07:09 |
| 8 | 11 | 2006-02-15 05:07:09 |
| 9 | 11 | 2006-02-15 05:07:09 |
| 10 | 15 | 2006-02-15 05:07:09 |
+---------+-------------+---------------------+
您需要将categories
与films
进行左连接,以便在结果中包含所有类别,即使是那些没有电影的类别,并按类别分组进行计数:
select c.name, count(f.film_id) counter
from categories c left join films f
on f.category_id = c.category_id
group by c.category_id, c.name
请参阅演示。
结果(对于您的样本数据,其中包括表films
中的category_id
,表categories
中不存在,因此它们不被计算在内):
| name | counter |
| ----------- | ------- |
| Action | 0 |
| Animation | 0 |
| Children | 0 |
| Classics | 0 |
| Comedy | 1 |
| Documentary | 2 |
| Drama | 0 |
| Family | 1 |
| Foreign | 1 |
| Games | 0 |
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.