现在我的数据表就像
uid mid ..
1 xx ..
2 xx ..
- a ..
- b ..
...
我写了两个SQL查询:
select count(distinct uid) from T where uid!='-'
和select count(distinc mid) from T where uid='-'
、
现在我只想在一个SQL查询中得到这两个值的总和。有人想帮我吗?
你可以这样拥有它:
SELECT (SELECT count(DISTINCT uid) FROM T WHERE uid <> '-') +
(SELECT count(DISTINCT mid) FROM T WHERE uid = '-') As sumOfTwo
或
;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
或[推荐]
SELECT count(DISTINCT CASE WHEN [uid] <> '-' THEN [uid] END) +
count(DISTINCT CASE WHEN [uid] = '-' THEN [mid] END)
FROM T
尝试此查询
select count(distinct uid) from T where uid!='-'
union all
select count(distinc mid) from T where uid='-'