У меня есть таблица myTable, которая выглядит следующим образом:
+-------+-------+--------+------------+
| Id | Agent | Qualif | Date |
+-------+-------+--------+------------+
| 1 | A | Q1 | 2019-05-11 |
| 2 | B | Q2 | 2019-05-11 |
| 3 | C | Q1 | 2019-05-12 |
| 4 | A | Q1 | 2019-05-11 |
| 5 | A | Q2 | 2019-05-11 |
+-------+-------+--------+------------+
для заданного диапазона дат, мне нужно показать количество строк на дату, на каждого агента и count (строки) -count (qualif = Q1) / count (строки)
Чтобы объяснить больше, способ, которым я делаю это на моей странице PHP, сначала запрашивает:
SELECT date, Agent, count(*) as tot
FROM myTable
WHERE date between d1 and d2
group by date, agent
И при циклическом просмотре результатов для каждого агента и даты я запрашиваю:
SELECT count(*) as totQ1 FROM my table WHERE date='somedate' and agent='someagent' and qualif='Q1'
Ожидаемый результат для периода между «2019-05-11» и «2019-05-12»
+------------+--------+-----+-----------+
| date | Agent | tot | division |
+------------+--------+-----+-----------+
| 2019-05-11 | A | 3 | 2/3 |
| 2019-05-11 | B | 1 | 1 |
| 2019-05-12 | C | 1 | 1 |
+------------+--------+-----+-----------+
принимая во внимание, если tot = 0;
Можно ли как-нибудь объединить все это в один запрос, чтобы мне не приходилось запрашивать несколько раз для каждой даты и агента?