2016-10-07 4 views
0

Задача, которую я имею под рукой, - «написать заявление SQL, чтобы найти количество сеансов, запланированных для каждого экрана в каждой ветви. Отобразить данные экрана (идентификатор ветки и экрана) и их соответствующие количество сеансов. Выполните многоуровневую сортировку с ветвлением и количеством сеансов. "многоуровневая сортировка и отображение информации

SELECT SCREENID, BRANCHID 
FROM SCREEN NATURAL JOIN SESSIONS; 

Таблица SCREEN:

--------------------------------------- 
ScreenID | BranchID | Screencapacity 
--------------------------------------- 
S1  | B1  | 120 
S1  | B2  | 185 
S2  | B1  | 230 
S2  | B4  | 165 
S2  | B3  | 185 
S1  | B3  | 210 
S2  | B4  | 170 
S2  | B1  | 150 
S3  | B2  | 135 
S1  | B4  | 128 
--------------------------------------- 

Таблица SESSION:

+-----------+----------+----------+---------+-------------+--------------+ 
| SESSIONID | BRANCHID | SCREENID | MOVIEID | SESSIONDATE | SESSIONPRICE | 
+-----------+----------+----------+---------+-------------+--------------+ 
| SS01  | B1  | S1  | M1  | 03-MAY-16 |   12.5 | 
| SS03  | B1  | S2  | M2  | 03-MAY-16 |  12.67 | 
| SS09  | B2  | S3  | M4  | 13-MAY-16 |   17.9 | 
| SS04  | B4  | S2  | M4  | 13-MAY-16 |  14.56 | 
| SS07  | B4  | S2  | M3  | 14-MAY-16 |  21.78 | 
| SS05  | B3  | S2  | M5  | 23-MAY-16 |  14.56 | 
| SS06  | B3  | S1  | M5  | 03-JUN-16 |  16.32 | 
| SS02  | B2  | S1  | M2  | 04-JUN-16 |  19.45 | 
| SS10  | B4  | S1  | M3  | 06-JUN-16 |  16.37 | 
| SS08  | B1  | S2  | M2  | 06-JUN-16 |  16.82 | 
+-----------+----------+----------+---------+-------------+--------------+ 

Я полностью потерянный, и я не уверен, с чего начать на этой проблеме

+0

Не можете добавить данные в свой вопрос и не использовать изображения? – Linkan

+0

не беспокоится, я сделаю это сейчас – Dan

+0

Хорошо, что было обновлено соответственно – Dan

ответ

1
select screenid, branchid, count(1) as no_of_sessions 
from screen A 
    join session B 
     on B.screenid = A.screenid 
     and B.branchid = A.branchid 
group by screenid, branchid 
order by branchid, no_of_sessions 
; 

Сначала вы присоединитесь к двум таблицам по screenid и branchid. Затем вы объединяете (group by) объединенные данные в группы по screenid и branchid и просто подсчитываете количество строк в каждой группе (count(1)). Затем вы заказываете результаты по branchid и количеству сеансов в группе (no_of_sessions).

Наслаждайтесь!

Смежные вопросы