t2.claimCreate claimDate,
t1.office office,
t2.creationOperatorFio operator,
count(*)
FROM serverate_ccs t1
JOIN serverate_ddl_claims t2 ON t2.dept_id=t1.dept_id
WHERE claimCreate BETWEEN DATE('2021-08-01') AND DATE('2021-09-02');
GROUP BY claimDate, office, operator
ORDER BY t2.dept_id asc
Да так работает относительно быстро причем в районе 3.5 сек . Только интересно то что если меняю период кол-во заявок не меняется. Попробую отбор без DATE()
возьмите одного конкретного оператора, добавьте его в условие WHERE и погоняйте для разных интервалов дат, будет видно, меняется или не меняется
пока нет DATE(поле) BETWEEN ... должно работать быстро. (хотя DATE(поле) тоже можно ускорить через индекс на generated column)
хм странно не то чтото не правильно считает
таким образом лучше без DATE?
В вашем изначальном варианте, на сколько я понимаю, оно вам считало все звонки каждого оператора, не важно в какую дату, потому и значения не такие, вы разбейте это на мелкие запросы и сверьте. Возьмите одного оператора, посчитайте кол-во звонков за 2 дня, потом этого же оператора добавьте в условие запроса с каунтом и сравните
Как вариант! спасибо попробую
Обсуждают сегодня