小编典典

带有条件的 SQL 查询计数

sql

我是第一次使用 SQL 查询并学习它。我有一张这样的表:

年名 产品公司ID
2001年 编号 1
2001年 编号 1
2001年 编号 2
2001年 编号 1
2001年 编号 1
2002年 编号 1
2002年 编号 1
2002年 编号 2
2002年 编号 2
2003年 编号 2

我想计算 productcompanyID 出现了多少次,但一年只计算一次。(对不起,我的英语不是我的语言,我可能不清楚)

我的意思是,目前我已经写了这个 SQL:

  SELECT DISTINCT(productcompanyid),
    COUNT(productcompanyid)
  FROM mydatabase
  GROUP BY productcompanyid

它给了我 ID 1: 6 和 ID 2: 4 的结果。

我想要的是 ID 1 : 2 (因为它在 2001 年和 2002 年至少出现一次)和 ID 2: 3 (因为它在 2001 年、2002 年和 2003 年至少出现一次)

谢谢你的帮助。


阅读 164

收藏
2022-07-22

共1个答案

小编典典

您实际上需要将 count 和 distinct 结合起来,如下所示:

select productcompanyID, count(distinct yearName) as distinctYears
from mydatabase
group by productcompanyID
2022-07-22