Как найти номер продукта для каждой категории с помощью оператора SQL - PullRequest
1 голос
/ 25 сентября 2019

Я хочу создать 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 |
+---------+-------------+---------------------+

1 Ответ

0 голосов
/ 25 сентября 2019

Вам нужно левое соединение от 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

См. демо .Результаты (для ваших выборочных данных, которые включают category_id s в таблице films, которых нет в таблице categories, поэтому они не учитываются):

| name        | counter |
| ----------- | ------- |
| Action      | 0       |
| Animation   | 0       |
| Children    | 0       |
| Classics    | 0       |
| Comedy      | 1       |
| Documentary | 2       |
| Drama       | 0       |
| Family      | 1       |
| Foreign     | 1       |
| Games       | 0       |
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...