Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Накопительный итог для агрегатной функции
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Опишу проблему. Есть таблица столбцами [modify_date], [response_1], [response_2], [response_3],[incident_id]. Таблица отображает дату опроса, оценки поставленные по 3 критериям и номер заявки по которой были поставлены оценки. modify_date - дата опроса response_1-3 - оценки incident_id - номер заявки. Задача состоит в следующем: 1. Посчитать среднее значение всех оценок по неделям за квартал. 2. Вывести историю изменения оценок по неделям за квартал. Например, имеем средние оценки за: первую неделю квартала: 4.3 вторую неделю квартала: 5 третью неделю квартала: 3.2 Тогда должен получится результат первая неделя квартала: 4.3 вторая неделя квартала: 4.65 ((4.3+5)/2)) третья неделя квартала: 4.16 ((4.3+5+3.2)/3)); Вывел номер недели и номер месяца, так же вывел общую среднюю оценку из 3 столбцов. SELECT TOP (500) concat (datepart (ww, surv_req.modify_date) , ',',MONTH (surv_req.modify_date)) as [Неделя/Месяц], (avg (surv_req.response_1*1.00)+avg (surv_req.response_2*1.00)+avg (surv_req.response_3*1.00))/3 as 'Оценка' FROM surv_req INNER JOIN incident ON surv_req.incident_id = incident.incident_id INNER JOIN assyst_usr ON incident.inc_resolve_usr = assyst_usr.assyst_usr_id where response_1 <>'0' and surv_req.modify_date between (select dateadd(qq, datediff(qq, 0, GETDATE()), 0)) and GETDATE() and concat(datepart(ww, surv_req.modify_date) , ',',MONTH(surv_req.modify_date))=concat(datepart(ww, surv_req.modify_date) , ',',MONTH(surv_req.modify_date)) GROUP BY month(surv_req.modify_date),datepart(ww, surv_req.modify_date) У меня такие вопросы: как мне вывести накопительный итог для агрегатной функции avg? Накопительный итог складывает значения, как мне потом разделить полученной число на количество записей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2019, 09:08 |
|
||
|
Накопительный итог для агрегатной функции
|
|||
|---|---|---|---|
|
#18+
AlexandrAVGНапример, имеем средние оценки за: первую неделю квартала: 4.3 вторую неделю квартала: 5 третью неделю квартала: 3.2 Тогда должен получится результат первая неделя квартала: 4.3 вторая неделя квартала: 4.65 ((4.3+5)/2)) третья неделя квартала: 4.16 ((4.3+5+3.2)/3));В CTE посчитать среднее. В основном запросе посчитать среднее среднего как оконную функцию. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2019, 09:24 |
|
||
|
Накопительный итог для агрегатной функции
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2019, 10:02 |
|
||
|
Накопительный итог для агрегатной функции
|
|||
|---|---|---|---|
|
#18+
invm Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. Спасибо большое! Теперь пытаюсь привести результат в формат 4,93, сейчас он в таком виде 4.9300000000000. Пытался воспользоваться SUBSTRING и CONVERT выдает ошибки Argument data type numeric is invalid for argument 1 of substring function. Arithmetic overflow error converting numeric to data type varchar. как можно преобразовать в char, ограничить количество символов до сотрых и произвести замену с точки на запятую? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2019, 11:27 |
|
||
|
Накопительный итог для агрегатной функции
|
|||
|---|---|---|---|
|
#18+
round( avg(sum(b.sum_response) / (count(*) * 3.)) over (order by month(surv_req.modify_date),datepart(ww, surv_req.modify_date)),2) as 'Оценка' всё что смог - это округлить значения до сотых ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2019, 11:34 |
|
||
|
Накопительный итог для агрегатной функции
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. так будет понятней ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2019, 11:36 |
|
||
|
Накопительный итог для агрегатной функции
|
|||
|---|---|---|---|
|
#18+
AlexandrAVGТеперь пытаюсь привести результат в формат 4,93На клиенте такие вещи нужно делать. Но если очень хочется, то: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2019, 11:47 |
|
||
|
|

start [/forum/topic.php?fid=46&gotonew=1&tid=1687818]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
62ms |
get topic data: |
9ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 228ms |
| total: | 376ms |

| 0 / 0 |
