Может быть, мой подход плох.У меня есть следующая схема в моей БД:
work_instances_table(wk_id, wk_occurance_id, start_time, end_time)
time_table(time_id, hour, minute, period)
Несколько work_occurances
может быть меньше одного wk_id
.Например:
wk_id | wk_occurance_id | start_time | end_time
1 | wk_01 | 111 | 111
2 | wk_02 | 345 | 345
1 | wk_03 | 654 | 655
1 | wk_04 | 132 | 132
2 | wk_05 | 051 | 053
и в time_table
мы можем объединить start_time
и end_time
с time_id
.
Предположим, я хочу получить
число всех вхождений работы, которые начались в два раза, скажем, от 0 до 3 часов утра
Я пытался
select w1.wk_id,
COUNT(w1.wk_occurance_id) as total_wk_occurances
from work_instances w1
inner join
time_dimension td1 on w1.start_time = td1.time_id
where
(td1.hour between 0 and 3 and td1.minute between 0 and 59 and td1.period = 'AM')
group by w1.wk_id;
Так что это дает мне
1 | 2
2 | 1
1 имеет 2 вхождения, а 2 имеет только 1.
Теперь, как подвести итог?
Означает, как расширить запрос, сказав total 2 works and 3 occurrences ran?
Пожалуйста, объясните и расширите сам исходный запрос, возможно, написав его как подзапрос.