Мы используем решение для мониторинга (zabbix). Она хранит данные тенденции (MySQL 5.X), используя таблицу с именем trends_uint со следующей структурой (упрощенный):SQL Query - заменить жестко установленные значения ... (MySQL)
itemid clock value_avg
1 1238774400 100
1 1250773900 70
1 1250773200 50
В часы поле хранит даты-времени с использованием значения времени Unix.
Я пытаюсь извлечь отчет, чтобы увидеть потребление контролируемого элемента. Я решил сделать это, выбрав самую старую запись и самую новую запись. Я добился этого, сделав следующее:
SELECT
(SELECT t.clock FROM trends_uint t WHERE t.itemid = 1 AND t.clock IN (SELECT MIN(t.clock) FROM trends_uint t WHERE t.itemid = 1)) AS minClock,
(SELECT t.value_avg FROM trends_uint t WHERE t.itemid = 1 AND t.clock IN (SELECT MIN(t.clock) FROM trends_uint t WHERE t.itemid = 1)) AS minValueAvg,
(SELECT t.clock FROM trends_uint t WHERE t.itemid = 1 AND t.clock IN (SELECT MAX(t.clock) FROM trends_uint t WHERE t.itemid = 1)) AS maxClock,
(SELECT t.value_avg FROM trends_uint t WHERE t.itemid = 1 AND t.clock IN (SELECT MAX(t.clock) FROM trends_uint t WHERE t.itemid = 1)) AS maxValueAvg,
(SELECT maxClock - minClock) AS timeGap,
(SELECT minValueAvg - maxValueAvg) AS valueGap,
(SELECT timeGap/86400) AS daysGap,
(SELECT valueGap/daysGap/1024/1024) AS consumeMB
Моя проблема в том, что у меня есть много серверов, из которых я хочу рассчитать потребление. Я не хочу менять запрос, для которого (изменение itemid).
В системе есть другая таблица (элементы), из которой я могу извлечь элементы, которые мне нужно внести в отчет. Что-то вроде SELECT itemid FROM items WHERE ...
Так что это мой вопрос: вместо использования жестко закодированного элемента itemid можно сделать его «динамическим», например, используя возвращенные коды из другого запроса (например: SELECT ... FROM ... WHERE itemid IN (SELECT itemid FROM items WHERE ...
)?
ТИА,
Боб
Спасибо. Я не был» t clear, но я пытаюсь добиться этого, просто используя функции MySQL (если возможно, предпочтение отдается чистым SQL-запросам). Я сделаю исследование об пользовательских переменных. –