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

SQL计数派生表的重复值

  •  3
  • xickoh  · 技术社区  · 7 年前

    我知道这会被要求很多,但没有其他解决方案对我有效。

    我有这个问题:

    SELECT 
        us.id AS idUser, ut.id AS idUtente, us.nome AS nomefunc 
    FROM 
        utentes ut 
    JOIN 
        historico h ON h.idUtente = ut.id 
    JOIN 
        users us ON h.idMedico = us.id 
    GROUP BY 
        idUser, idUtente
    

    返回结果:

    idUser | idUtente | nomefunc
    -------+----------+----------
      1    |    1     | Pedro
      1    |    2     | Pedro
      1    |    3     | Pedro
      1    |    4     | Pedro
      1    |    5     | Pedro
      2    |    1     | Filipe
      2    |    2     | Filipe
      3    |    1     | Francisco
      5    |    2     | Miguel
    

    现在,我想计算一下每个nomefunc在表上出现的次数。 一个简单的 count(nomefunc) 不起作用。

    如果需要,我将为每个表发布每个列的名称。

    事先谢谢!

    1 回复  |  直到 7 年前
        1
  •  1
  •   Ankur Patel    7 年前

    请尝试以下操作:

    select 
        nomefunc, 
        count(*)
    From
    (
    SELECT 
        us.id AS idUser, ut.id AS idUtente, us.nome AS nomefunc 
    FROM 
        utentes ut 
    JOIN 
        historico h ON h.idUtente = ut.id 
    JOIN 
        users us ON h.idMedico = us.id 
    GROUP BY 
        idUser, idUtente
    ) as X
    Group by
        nomefunc