代码之家  ›  专栏  ›  技术社区  ›  VDWWD

MS SQL统计项目总数,但每个用户仅一次[重复]

  •  0
  • VDWWD  · 技术社区  · 6 年前
    &13;

    这个问题已经有了答案:

    &13;

    α13;
    >13;

    我要的是 NAME 从MS SQL数据库,但每个用户只能使用一次。以下是我的数据样本。

    USERID      NAME
    ------------------------
    1           name 1
    1           name 1
    1           name 1
    2           name 1
    2           name 2
    2           name 3
    3           name 1
    3           name 1
    3           name 3
    4           name 1
    

    如果我使用以下查询

    SELECT COUNT(name) AS total, name FROM TestTable GROUP BY name
    

    我得到以下结果

    7   name 1
    1   name 2
    2   name 3
    

    但我想要的是下面的结果。查询应忽略2X name 1 来自用户1和1X name 1 from user 3.

    4   name 1
    1   name 2
    2   name 3
    

    我对SQL的了解不足,无法使其正常工作,也无法了解查询中要使用的正确术语。所以可能有一个副本,如果有,请指给我。

    3 回复  |  直到 6 年前
        1
  •  4
  •   Fahmi    6 年前

    您可以使用不同的用户ID count()

    SELECT COUNT(distinct userid) AS total, name FROM TestTable GROUP BY name
    
        2
  •  4
  •   Zaynul Abadin Tuhin    6 年前

    使用 distinct count() 用户标识

    SELECT COUNT(distinct userid) AS total, name FROM TestTable GROUP BY name
    
        3
  •  1
  •   Yogesh Sharma    6 年前
    你想要 DISTINCT 里面 COUNT() 忽略重复计数:

    SELECT COUNT(DISTINCT USERID) AS total, name 
    FROM TestTable 
    GROUP BY name;