如何在SQL中添加统计值

  • 本文关键字:添加 统计 SQL sql
  • 更新时间 :
  • 英文 :


现在我的数据表就像

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='-'

最新更新