Я подключаюсь к базе данных MySql в Tableau с помощью SQL-запроса. У меня есть таблица с тремя столбцами (DateTime, Compteur, Valeur). Я хочу добавить новые строки, добавив / умножив / разделив существующие строки.
|---------------------|------------------|-----------------|
| DateTime | Compteur | Valeur
|---------------------|------------------|-----------------
| 15.04.2019 16:51:30| A | 5
|---------------------|------------------|-----------------
| 15.04.2019 17:57:42| A | 6
|---------------------|------------------|-----------------
| 15.04.2019 16:52:14| B | NULL
|---------------------|------------------|-----------------
| 15.04.2019 17:52:14| B | 8
|---------------------|------------------|-----------------
| 15.04.2019 16:51:30| C | 5
|---------------------|------------------|-----------------
| 15.04.2019 17:57:42| C | 6
|---------------------|------------------|-----------------
| 15.04.2019 16:52:14| D | 8
|---------------------|------------------|-----------------
| 15.04.2019 17:52:14| D | 9
|---------------------|------------------|----------------
| (NEW ROW)
15.04.2019 16:00:00 | K | 3.0769
|---------------------|------------------|----------------
| (NEW ROW)
15.04.2019 17:00:00 | K | 8.4
|---------------------|------------------|----------------
Цель состоит в том, чтобы сделать следующее: (A + B) / (C + D) * D. Расчет должен быть сделан для каждого часа и добавлен как новая строка с новым именем compteur в строке. Нулевые значения должны рассматриваться как ноль в расчетах. Не могли бы вы предоставить общий код, который мог бы делать то, что я хочу. Заранее спасибо!
Это уже то, что я должен получить данные из базы данных. Я вычисляю разницу, так как значения накапливаются, поэтому я должен найти значение для соответствующего DateTime, вычтя из предыдущей строки в каждом Compteur:
SELECT DateTime, Compteur, Valeur
FROM
(
SELECT DateTime, TagName AS Compteur
, Value - LAG(Value, 1, NULL) OVER (PARTITION BY TagName ORDER BY DateTime) AS Valeur
FROM History
WHERE TagName IN
(
'H270ME01MDB90.vol',
'H270ME01MDB91.vol',
'HA44AC01CDI07.vol',
'HA44AC01CDI06.vol',
)
AND DateTime >='2018-12-31 23:59:00'
AND wwRetrievalMode='Delta'
)t
WHERE t.DateTime >='2018-12-31 23:59:59'