Хотите получить один результат, который показывает сумму столбца uptimeweightage с использованием нижеупомянутого запроса MySQL.
SELECT uptime.metricname,
Sum(downtimesincelastbat) * weightage AS uptimeweightage
FROM uptime
INNER JOIN weightage
ON weightage.metricname = uptime.metricname
WHERE uptime.environment = "xxxxxx1"
AND uptime.metricname NOT REGEXP "xxxxx"
AND uptime.metricname NOT REGEXP "xxxxxx"
AND uptime.metricname NOT REGEXP "xxxxxxx"
AND eventtime >= From_unixtime(1540616606)
AND eventtime <= From_unixtime(1540703006)
GROUP BY uptime.metricname;
Вывод вышеприведенного запроса выглядит следующим образом:
+---------------------+-----------------+
| metricname | uptimeweightage |
+-------------------+-----------------+
| A | 84.00 |
| B | 36.00 |
| C | 505.20 |
| D | 6.00 |
| E | 6.00 |
+-------------------+-----------------+
Хотите увидеть один результат, как показано ниже, для которого я бы выполнил еще несколько арифметических операций.
+-----------------+
| TOTAL weightage |
+-----------------+
| 637.20 |
+-----------------+
Здесь действуют две таблицы: одна - весовая, а другая - время безотказной работы.
данные в таблице весов выглядят следующим образом:
+----+---------------------------------+-----------+
| id | metricname | weightage |
+----+---------------------------------+-----------+
| 1 | A | 0.30 |
| 2 | B | 0.30 |
| 3 | C | 0.20 |
| 4 | D | 0.10 |
| 5 | E | 0.10 |
+----+---------------------------------+-----------+
данные в таблице времени готовности выглядят следующим образом:
+--------+----------------------------+---------------------------------+-------------------------+-------------+----------------------+--------+---------------------+
| id | eventtime | metricname | environment | jobduration | downtimesincelastbat | status | inserttime |
+--------+----------------------------+---------------------------------+-------------------------+-------------+----------------------+--------+---------------------+
| 1 | 2018-10-28 18:54:45.445 | A | xxxxxx1 | 37 | 0 | 1 | 2018-10-28 18:54:46 |
| 2 | 2018-10-28 18:54:44.087 | B | xxxxxx2 | 23 | 0 | 1 | 2018-10-28 18:54:45 |
| 3 | 2018-10-28 18:54:44.087 | C | xxxxxx1 | 23 | 0 | 1 | 2018-10-28 18:54:44 |
| 4 | 2018-10-28 18:54:42.428 | D | xxxxxx3 | 21 | 0 | 1 | 2018-10-28 18:54:43 |
| 5 | 2018-10-28 18:54:43.061 | E | xxxxxx2 | 24 | 0 | 1 | 2018-10-28 18:54:43 |
+--------+----------------------------+---------------------------------+-------------------------+-------------+----------------------+--------+---------------------+
PS: время всегда гибкое и основано на времени эпохии предоставляется внешней организацией.