powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сравнение строк между собой
7 сообщений из 7, страница 1 из 1
Сравнение строк между собой
    #39756990
fenix_63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет. Народ, у меня вот такой вопрос. Есть таблица (на скриншоте).

Помогите пожалуйста составить правильный SQL-запрос, чтобы получить вот что:

Мне нужно получить динамику изменения среднего значения поля points за 1 день.
Например есть отдел: "Отдел обеспечения ЭДО".
У этого отдела среднее значение поля points за
27.12.2018 равно 1
29.12.2018 равно -0.5
09.01.2018 равно 1

Мне надо как то в будущем на веб-странице вывести динамику изменения этого числа - ну то есть по сравнению с предыдущим днём это число "выросло", или "Упало", или "Стоит на месте". Ну и стрелку "вверх" или "вниз" соответственно добавить.

Я думаю что нужно в запрос какое то дополнительное поле ввести (флаг), которое показывало бы, ростёт ли это число, падает, или стоит на месте.

Сейчас у меня вот такой запрос есть:

Select dep_name as 'Отдел', Sum(points)/count(points) as 'Средний балл за день', points as 'Оценка', date as 'Дата' From nps
Where dep_id=218
Group by date

Но как его сделать так, чтобы было сравнение поля 'Средний балл за день' скажем за 27.12.2018 с тем же самым полем, но за 29.12.2018 ?

Помогите пожалуйста, кто знает.
...
Рейтинг: 0 / 0
Сравнение строк между собой
    #39757008
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Получите в CTE среднее за день (кстати, можно сразу использовать AVG(), не надо делить SUM() на COUNT()), потом пронумеруйте в группе по отделу с сортировкой по дате, и в запросе выведите пары записей, для которых номер отличается на единицу.
...
Рейтинг: 0 / 0
Сравнение строк между собой
    #39757015
fenix_63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что такое CTE ?
...
Рейтинг: 0 / 0
Сравнение строк между собой
    #39757068
Фотография Akina
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Сравнение строк между собой
    #39757177
fenix_63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то вообще не получается, или Битрикс ограничения какие то на SQL-запросы накладывает. Сейчас вот это сделал:

Код: sql
1.
2.
3.
Select dep_name as 'Отдел', AVG(points) as 'Средний балл за день', points as 'Оценка', date as 'Дата' From nps
Group by date, dep_name
Order by dep_name, date DESC



например для отдела "отдел обеспечения ЭДО" - 3 записи. Для записи от 09.01.2018 мне надо вычислить разницу поля "Средний балл за день" за эта дату, и за предыдущий день (29.12.2018). Это будет 1- (-0,5) = 1.5

Это число 1.5 мне надо как то привязать к записи от 09.01.2018 т.к. именно у этого дня показатель вырос.
Соответственно для записи от 29.12.2018 это число -0.5 - 1 = -1.5 и оно будет привязано к записи от 29.12.2018

А у записи от 27.12.2018 такого числа не будет, т.к. это самая старая запись, и её сравнить не с чем.
...
Рейтинг: 0 / 0
Сравнение строк между собой
    #39757180
fenix_63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот скриншот
...
Рейтинг: 0 / 0
Сравнение строк между собой
    #39757182
fenix_63
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Akina, а более простого варианта нет?
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Сравнение строк между собой
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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