SELECT subscriber,
       count(*) AS value
FROM (SELECT events.calls.msisdn AS subscriber
      FROM events.calls
      WHERE (events.calls.datetime >= '2016-01-02 00:00:00')
        AND (events.calls.datetime < '2016-01-04 00:00:00')
        AND (to_char(events.calls.datetime, 'HH24:MI') >= '12:00')
        AND (to_char(events.calls.datetime, 'HH24:MI') < '18:00')

      UNION ALL

      SELECT events.sms.msisdn AS subscriber
      FROM events.sms
      WHERE (events.sms.datetime >= '2016-01-02 00:00:00')
        AND (events.sms.datetime < '2016-01-04 00:00:00')
        AND (to_char(events.sms.datetime, 'HH24:MI') >= '12:00')
        AND (to_char(events.sms.datetime, 'HH24:MI') < '18:00')) AS u
GROUP BY subscriber