1. SELECT userId targetId
    2. FROM
    3. (
    4. SELECT
    5. userIds AS userId, 1 AS rule_index
    6. FROM (select arrayJoin(userIds) as userIds from mt_insight_anomaly_base) miab
    7. INNER JOIN (
    8. SELECT DISTINCT userId
    9. FROM (
    10. SELECT arrayJoin(userIds) AS userId
    11. FROM mt_insight_anomaly_base mt_insight_anomaly_base0
    12. where mt_insight_anomaly_base.name = '异常4'
    13. AND mt_insight_anomaly_base.create_time >= toDateTime('2021-02-03 10:33:00')
    14. AND mt_insight_anomaly_base.create_time <= toDateTime('2021-02-03 10:44:00')
    15. GROUP BY arrayJoin(userIds)
    16. HAVING count(1) >= 1
    17. )
    18. ) filter_table
    19. ON filter_table.userId = miab.userIds
    20. UNION ALL
    21. SELECT
    22. userIds AS userId, 2 AS rule_index
    23. FROM (select arrayJoin(userIds) as userIds from mt_insight_anomaly_base) miab
    24. INNER JOIN (
    25. SELECT DISTINCT userId
    26. FROM (
    27. SELECT arrayJoin(userIds) AS userId
    28. FROM mt_insight_anomaly_base mt_insight_anomaly_base1
    29. where mt_insight_anomaly_base.name = '异常5'
    30. AND mt_insight_anomaly_base.create_time >= toDateTime('2021-02-03 10:33:00')
    31. AND mt_insight_anomaly_base.create_time <= toDateTime('2021-02-03 10:44:00')
    32. GROUP BY arrayJoin(userIds)
    33. HAVING count(1) >= 1
    34. )
    35. ) filter_table
    36. ON filter_table.userId = miab.userIds
    37. )
    38. GROUP BY userId
    39. HAVING hasAll(groupUniqArray(rule_index), [1,2]) = 1