You can do it as follows:
SELECT (SELECT count(DISTINCT uid) FROM T WHERE uid <> '-') +
(SELECT count(DISTINCT mid) FROM T WHERE uid = '-') As sumOfTwo
or
;WITH t1 AS (
SELECT count(DISTINCT uid) cnt FROM T WHERE uid <> '-'
), t2 AS (
SELECT count(DISTINCT mid) cnt FROM T WHERE uid = '-'
)
SELECT t1.cnt + t2.cnt As sumOfTwo
FROM t1 CROSS JOIN t2
or [Recommended]
SELECT count(DISTINCT CASE WHEN [uid] <> '-' THEN [uid] END) +
count(DISTINCT CASE WHEN [uid] = '-' THEN [mid] END)
FROM T
source
share