没有包装查询的SQL计数

时间:2015-04-01 12:12:25

标签: sql

我有以下假设代码,它适用于获取site的行数

SELECT COUNT(*) FROM (
    SELECT site
      FROM (SELECT...) x
 LEFT JOIN foo.bars 
        ON foo.id = x.id
  GROUP BY site
)

有没有其他方法可以在不使用最外层SELECT的情况下进行此计算?

1 个答案:

答案 0 :(得分:1)

你可以用count(distinct)

做你想做的事
SELECT COUNT(DISTINCT site)
FROM (SELECT...) x LEFT JOIN
     foo.bars 
     ON foo.id = x.id;

唯一的区别是原始版本的NULL值为site。如果这很重要,那么可以轻松修改查询以将其考虑在内。