Я написал следующий запрос, который использует group_concat
:
SELECT p.hostname AS Hostname,
GROUP_CONCAT(t2.status SEPARATOR ' :: ') AS Status,
GROUP_CONCAT(t3.error SEPARATOR ' :: ') AS Title
FROM table p
...
...
WHERE p.hostname regexp 'abc'
GROUP BY p.hostname;
Я получаю следующий вывод:
Hostname Status Title
abc.com PASS :: PASS :: PASS Title1 :: Title12 :: Title3
Я хочу добавить условное утверждение, так что если оно is all PASS :: PASS :: PASS
, тогда в статусе должно отображаться только одно значение как PASS
Если оно имеет одно или несколько значений FAIL
, таких как PASS :: PASS :: FAIL
, тогда в статусе должно отображаться только одно значение как FAIL
. Кроме того, он должен показывать только title
, соответствующий FAIL
. Например, если это PASS :: PASS :: FAIL
, тогда выходной сигнал должен быть
Hostname Status Title
abc.com FAIL title3
В случае нескольких FAIL
, таких как PASS :: FAIL :: FAIL
, общее состояние должно быть FAIL
. Заголовок должен иметь значение Title2 :: Title3
Hostname Status Title
abc.com FAIL Title12 :: Title3
Если все значения для статуса PASS
, тогда title
должно иметь значение NA
Hostname Status Title
abc.com PASS NA