SELECT COUNT(*) AS 'c',(itemid % delay) AS 's',GROUP_CONCAT(DISTINCT key_) AS 'key'
FROM (
SELECT status,flags,type,key_,hostid,itemid,delay*60 AS delay from items where delay like '%m'
UNION DISTINCT
SELECT status,flags,type,key_,hostid,itemid,delay*1 AS delay from items where delay like '%s'
UNION DISTINCT
SELECT status,flags,type,key_,hostid,itemid,delay*3600 AS delay from items where delay like '%h'
UNION DISTINCT
SELECT status,flags,type,key_,hostid,itemid,delay*86400 AS delay from items where delay like '%d'
UNION DISTINCT
SELECT status,flags,type,key_,hostid,itemid,delay from items where delay REGEXP '^[0-9]+$'
) AS T
WHERE hostid=12795 AND type NOT IN (18) AND delay>0
GROUP BY 2
HAVING COUNT(*)>1
;
No comments:
Post a Comment