如何在不计算SQLITE中不同行的重复值的情况下使用Count()?

时间:2016-04-23 19:12:51

标签: sqlite

我有一张名为Review的表。
它包含客户对之前经历过的清洁公司的评论 相同的ReviewerID可以在同一家公司(任何时间)提供许多评论 1 ReviewerID == 1个人。
我决定每次审核都有一个ReviewID,因为每篇评论都有不同的review_statement 因此,ReviewID是PK,companyID是FK。

James216 2

我想获得数据库中每个ReviewerID审核的公司数量 通过引用该表,所需的输出为{{1}}(1因为James216仅审查了公司clean417)。我尝试过使用COUNT但它会计算非空行,导致输出为{{1}}。

我也试过使用select distinct但输出不正确 我真的无法弄清楚这一点。

2 个答案:

答案 0 :(得分:1)

由于我认为它不支持count(distinct),您可以通过创建一个独特的子集来解决它:

select reviewerID, count(companyID) 
  from (select distinct reviewerID, companyID
          from Review)
 group by reviewerID;

答案 1 :(得分:0)

来自official docs

  

在任何采用单个参数的聚合函数中,该参数前面都有关键字DISTINCT。

您可以使用

SELECT DISTINCT Count(YourField) FROM YourTable