|
Вычисление среднего значения поля в двух смежных строках запроса.
|
|||
---|---|---|---|
#18+
Приветствую всех! Уважаемые профессионалы, подскажите, как это реализовать. Есть запрос, в котором каждому значению времени (В) соответствует параметр П0. Дискретность времени -30мин. Мне надо добавить в запрос параметр ПЧ, в строки, где В равно полный час, который будет равен среднему значению П0 предыдущей строки и текущей, как на 2-й картинке. Причем в первой строке параметр ПЧ должен быть 0, т.к. предидущей строки нет. Не знаю, понятно сформулировал вопрос? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2018, 12:48 |
|
Вычисление среднего значения поля в двух смежных строках запроса.
|
|||
---|---|---|---|
#18+
Уточнение: это и есть 2-я картинка ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2018, 12:49 |
|
Вычисление среднего значения поля в двух смежных строках запроса.
|
|||
---|---|---|---|
#18+
Посчитайте среднее в подзапросе, группируя по времени, урезанном до часов, и привяжите его по времени по-левому к своей таблице. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2018, 15:02 |
|
Вычисление среднего значения поля в двух смежных строках запроса.
|
|||
---|---|---|---|
#18+
Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2018, 15:14 |
|
Вычисление среднего значения поля в двух смежных строках запроса.
|
|||
---|---|---|---|
#18+
` Код: sql 1. 2.
Что-то получилось, но не все корректно. Вставляет вычисления в строки, где не нужно, и наоборот, некоторые нужные строки оставляет пустыми. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2018, 16:14 |
|
Вычисление среднего значения поля в двух смежных строках запроса.
|
|||
---|---|---|---|
#18+
БД с таблицей в студию. И уточните - гарантируется ли отсутствие "дырок" во времени... ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2018, 16:27 |
|
Вычисление среднего значения поля в двух смежных строках запроса.
|
|||
---|---|---|---|
#18+
` Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2018, 16:44 |
|
Вычисление среднего значения поля в двух смежных строках запроса.
|
|||
---|---|---|---|
#18+
Чтоб не было лишних вычислений: Код: sql 1.
То, что отсутствуют некоторые нужные вычисления, то, видимо, какие-то расхождения в секундах/долях секунд. Попробуйте так: Код: sql 1.
А в вашем запросе всегда одна точка и одна дата? Если нет, то join on надо их добавить. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2018, 16:45 |
|
Вычисление среднего значения поля в двух смежных строках запроса.
|
|||
---|---|---|---|
#18+
Akina, Выкладываю базу. Исходный запрос - Запрос3, вычислямый запрос- Запрос5. Исходим из того, что дыр во времени не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2018, 16:45 |
|
Вычисление среднего значения поля в двух смежных строках запроса.
|
|||
---|---|---|---|
#18+
`` Код: sql 1. 2.
Тоже некорректно считает(. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2018, 18:28 |
|
Вычисление среднего значения поля в двух смежных строках запроса.
|
|||
---|---|---|---|
#18+
Анатолий ( Киев )Чтоб не было лишних вычислений: Код: sql 1.
То, что отсутствуют некоторые нужные вычисления, то, видимо, какие-то расхождения в секундах/долях секунд. Попробуйте так: Код: sql 1.
А в вашем запросе всегда одна точка и одна дата? Если нет, то join on надо их добавить. Чего то не хватает в коде. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2018, 18:29 |
|
Вычисление среднего значения поля в двух смежных строках запроса.
|
|||
---|---|---|---|
#18+
wladimirrr, интересная задачка и решение уже найдено, чуток поправлю. не заморачивался сильно с проверкой, вроде результат норм. запрос 5 SELECT T1.*, T2.П0, (T1.П0+T2.П0)/2 AS ПЧ FROM Запрос3 AS T1 LEFT JOIN Запрос3 AS T2 ON T1.B1=TimeSerial(Hour(T2.B1),Minute(T2.B1)+30,0) WHERE minute(T1.B1)=0; запрос 3 SELECT Код, fldТочкаУчета, Д, TimeSerial(Hour([В]),Minute([В]),0) AS B1, П0 FROM Таблица1; P.s. Имена полей лучше латиницей писать - программировать проще. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2018, 23:57 |
|
Вычисление среднего значения поля в двух смежных строках запроса.
|
|||
---|---|---|---|
#18+
alecko, Спасибо! Вроде работает! Проверяю дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.01.2018, 10:30 |
|
Вычисление среднего значения поля в двух смежных строках запроса.
|
|||
---|---|---|---|
#18+
aleckowladimirrr, интересная задачка и решение уже найдено, чуток поправлю. не заморачивался сильно с проверкой, вроде результат норм. запрос 5 SELECT T1.*, T2.П0, (T1.П0+T2.П0)/2 AS ПЧ FROM Запрос3 AS T1 LEFT JOIN Запрос3 AS T2 ON T1.B1=TimeSerial(Hour(T2.B1),Minute(T2.B1)+30,0) WHERE minute(T1.B1)=0; запрос 3 SELECT Код, fldТочкаУчета, Д, TimeSerial(Hour([В]),Minute([В]),0) AS B1, П0 FROM Таблица1; P.s. Имена полей лучше латиницей писать - программировать проще. Alecko, если точка учета одна, все нормально считает. А если их несколько с теми-же значениями времени, получается "каша". Что надо добавить в Запрос5? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2018, 23:18 |
|
Вычисление среднего значения поля в двух смежных строках запроса.
|
|||
---|---|---|---|
#18+
wladimirrr, наверное уже решили, если нет - попробуйте так Код: vbnet 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.02.2018, 14:50 |
|
|
start [/forum/topic.php?fid=45&msg=39590840&tid=1611654]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
55ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 16ms |
total: | 173ms |
0 / 0 |