Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток. Есть таблица item0001 --------------------------------------- time timestamp(3) - время записи value double - значение --------------------------------------- Хочу посчитать разницу value значения по отношению к предыдущему значению в поле value. Пробую такой вариант Код: sql 1. 2. 3. 4. 5. Но почему-то данная конструкция не работает. Получаю неожиданный результат (прикрепил пример ответа). Есть идеи как можно сделать? PS: если что-то не понятно, спрашивайте, уточню Заранее благодарен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 09:44 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 12:12 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
Akina Код: sql 1. 2. 3. ?в данном варианте учитывается что данные в куче расположены в порядке возрастания времени.и выбор из кучи идет в порядке изменения времени. но если отвлечься от времени , то предыдущее значение из кучи не есть предыдущее по логике данных. Поэтому надо сначала отсортировать данные т.е.сделать выбор и сортировку в подзапросе , а потом уже value-@tmp delta, @tmp:=value value ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 15:08 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
вадяв данном варианте учитывается что данные в куче расположены в порядке возрастания времениА ORDER BY там типа для красоты? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 15:14 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 15:18 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
Все супер, вот только упущенна группировка. GROUP BY day(time). Если попробовать использовать группировку то все по прежнему не работает Akina Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 16:03 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
646826Все супер, вот только упущенна группировка. GROUP BY day(time).НАХРЕНА тут группировка??? тем более что про неё и в исходном вопросе нет и намёка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 16:07 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
Akina, в данном случае группировка нужно для получения значений по дням Изначально я привел пример с группировкой и заголовке я об этом тоже указал Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 16:17 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
Akina, Я думаю тут можно попробовать посчитать сумму например так Код: sql 1. 2. 3. 4. Пока не совсем уверен в получении правельных значений ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 16:19 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
646826Akina, Я думаю тут можно попробовать посчитать сумму например так Код: sql 1. 2. 3. 4. Пока не совсем уверен в получении правельных значений Да я поспешил с выводами, нужно другое решение которое позволит получить значения при использовании группировки ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 16:22 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
Если Вы группируете по дням - то какое из значений value для группы Вы намерены брать? их там несколько, и они, внезапно, разные... Если определитесь - то сперва выполните группировку и отбор этих нужных значений, и потом полученный подзапрос используйте в качестве источника данных показанного мной запроса. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 16:40 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
Akina, спасибо. Я наверно сам запутался. Получается, что в итоге, я должен буду получить число которое будет отображать разницу между значеними зафиксированными в конце дня. Тоесть, таблица в значении Value содержит некий счетчик, который записывается, к примеру каждую минуту (это значение будет либо больше либо равно предыдущему) и мне нужно вытащить разницу этого счетчика за каждый день. PS: попробую сообразить как это все отобразить в запросе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 16:57 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
Akina, да всё верно. но если есть не одна таблица, что может влиять на очерёдность выборки? у меня есть примерно аналогичный запрос, состоящий из основной таблицы, и нескольких вьюх в которых эта таблица и ещё одна, во вьюхах задана сортировка по основной таблице. но в результирующем - сортировка нарушается, и соответственно правильного результата нет.. пришлось загнать в подзапрос в нем отсортировать , и только потом использовать переменные в чем может быть причина? что сортировка применяется уже после того как вычислены переменные? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 17:47 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
вадячто сортировка применяется уже после того как вычислены переменные?Сначала ORDER BY, потом вычисление выходных выражений, затем LIMIT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 18:38 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
AkinaСначала ORDER BY, потом вычисление выходных выражений, затем LIMIT.а что может влиять что такой порядок нарушается? у меня сначала вычисления - потом сортировка ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 18:41 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
вадячто может влиять что такой порядок нарушается?Группировка. У тебя не выражения выходного набора, а выражения неявной групповой функции "взять случайную запись группы". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 18:56 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
AkinaГруппировка. У тебя не выражения выходного набора, а выражения неявной групповой функции "взять случайную запись группы".тогда в чем причина требования группировки в 5.7+ ? в чем профит этого? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 19:11 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
вадяв чем профит этого?Переносимость кода. Соответствие стандарту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2017, 19:12 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
Akina, Что-то получилось, пока работает и выглядит не идеально Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. В общем задача состоит в том, чтоб сделать выборку для построения графика расхода электроэнергии без использования дополнительных таблиц в которых предлагают сохранять конкретные записи суточных и почасовых значений (источник - https://geektimes.ru/company/plarium/blog/288206/) Если будут предложения как сформировать запрос более корректно, буду признателен. PS: график формирую в графане ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 23:22 |
|
||
|
Группировка и просчет разницы с предыдущим значением
|
|||
|---|---|---|---|
|
#18+
К сожалению не нашел как тут редактировать пост. Внес изменения в скрипт чтоб данные выборки соответствовали данным сохраненным в другой таблице (нижний график строится через запрос). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2017, 23:45 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=39573913&tid=1830157]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
33ms |
get topic data: |
9ms |
get forum data: |
3ms |
get page messages: |
51ms |
get tp. blocked users: |
1ms |
| others: | 9ms |
| total: | 137ms |

| 0 / 0 |
