powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помощь с запросом
10 сообщений из 10, страница 1 из 1
Помощь с запросом
    #39615102
Дмитри4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток!
Есть запрос который считает кол-во принятых\отвеченных звонков в очередях
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
SELECT 
	queuename,
  SUM(queue_log.event='ENTERQUEUE') AS Total_Calls,
  SUM(queue_log.event='CONNECT') AS Connected_Calls,
  SUM(queue_log.event='ABANDON') AS Abandoned_Calls

FROM queue_log
WHERE (`time` > '2018-02-01 00:00:00%') 
and (`time` < '2018-02-28 23:59:59%') 
and `queuename` in ('green','red','hotline')

GROUP BY queuename


Пытаюсь к нему прикрутить подсчет среднего времени подъема трубки, значение времени хранится в колонке data3 у которой event=СONNECT
если делаю так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
			SELECT	qlog1.queuename as QUEUENAME,
				SUM(qlog1.event='ENTERQUEUE') AS Total_Calls,
				SUM(qlog1.event='CONNECT') AS Connected_Calls,
				SUM(qlog1.event='ABANDON') AS Abandoned_Calls,
				ROUND(AVG(qlog2.data3), 2) as AVGANSWERTIME

			FROM queue_log qlog1
				INNER JOIN queue_log qlog2 ON qlog1.callid=qlog2.callid and qlog2.event='CONNECT'
			WHERE 
				qlog1.time  BETWEEN '2018-02-01 00:00:00%' 
						and '2018-02-28 23:59:59%' 
						and qlog1.queuename in ('hotline','red','green') 
						
			GROUP BY qlog1.queuename


перестает считаться колонка Abandoned_Calls и запрос выполняется долго


Подскажите пжл как сделать лучше?
...
Рейтинг: 0 / 0
Помощь с запросом
    #39615130
Дмитри4
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос снят
Решение замена INNER JOIN на LEFT JOIN а по скорости пару индексов....
Всем спасибо )
...
Рейтинг: 0 / 0
Помощь с запросом
    #39615797
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет. Нужна помощь
Название таблицы ordered
в ней необходимые поля
ordered_id (это id записи) ordered_name (название товара) ordered_count (количество которое заказали)

Задача выбрать все товары, которые чаще всего заказывали основываясь на количестве из поля ordered_count и сделать лимит 8 с сортировкой по ASC

select * from ordered_id where а дальше стопорюсь
...
Рейтинг: 0 / 0
Помощь с запросом
    #39615809
angrybot,

не совсем понятно, что вкладывается в понятие "чаще всего заказывали"....
Это товар, про который присутствует больше всего записей в таблице?
или же товар, у которого сумма всех заказанных количеств - максимальная ?

Но в любом случае, нужна группировка по товару. а дальше уже решаешь, что считать - count(ordered_name) или sum(ordered_count)
с дальнейшей обратной сортировкой по полученному полю (order by [sum | count] DESC) и выбором TOP N записей (LIMIT)
...
Рейтинг: 0 / 0
Помощь с запросом
    #39615812
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
товары которые больше всего заказывали по кличеству
...
Рейтинг: 0 / 0
Помощь с запросом
    #39615828
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
angrybotwhere а дальше стопорюсьWHERE не нужен. Нужны GROUP BY + ORDER BY + LIMIT. И если задача "выбрать все товары" - то выбирай именно товары, а не всё подряд.
...
Рейтинг: 0 / 0
Помощь с запросом
    #39615829
angrybot,

постановщик задач из тебя - так себе.
скорее всего, тебе вообще хватит обычного:

Код: sql
1.
2.
3.
4.
5.
6.
select *
  from (
select * from ordered
order by ordered_count desc
limit 8) v
order by ordered_count
...
Рейтинг: 0 / 0
Помощь с запросом
    #39615831
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый Э - Эхскорее всего, тебе вообще хватит обычногоВряд ли ordered_name уникально. Скорее всего как раз нет (иначе на зачем ordered_id?)...
...
Рейтинг: 0 / 0
Помощь с запросом
    #39615833
Akina,

с той постановкой, что у автора - можно много напридумывать чего он имел ввиду и как оно есть на самом деле.
направления движения ему задано. пусть сам допиливает свой "велосипед". ну или ставит задачу в соответствии с требованиями - тестовые данные, желаемый вид результата и всё такое
...
Рейтинг: 0 / 0
Помощь с запросом
    #39615837
angrybot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сейчас попробую, спасибо
и попробую более четко описать задачу
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Помощь с запросом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]