sql 获取分配给每个 id 的案例数

sql to get count of cases assigned to each id

我的 sql 输出应该是这样的,

AssignedTo  Cases
Larry       3
Tom         1
Henry       1

我有 3 张桌子。关系

select
     CASE
            WHEN r.id = 30 THEN r.name
            ELSE r.name
                 || ' '
                 || u.b_id
        END
    AS assignedto,  count(*) as cases
    from cases c, users u, roles r
    where c.id = u.b_id and
          c.assigned_to = u.id and 
          u.role_id = r.id
          and c.b_id = 40 
    group by c.assigned_to;

你只需要一个简单的COUNT()聚合

SELECT assigned_to, COUNT(*) AS cases
  FROM tab
 GROUP BY assigned_to

更新:

在这种情况下(为了包含来自另一个 table 的名称),使用带有 [INNER] JOIN 的 Select 语句:

SELECT u.name AS assignedto, COUNT(*) AS cases
  FROM cases c
  JOIN users u
    ON u.id = c.assigned_to
 GROUP BY u.name

Select 计数 ... 按 id 分组,assigned_to。

使用 COUNT 进行聚合,使用 GROUP BY 将聚合分配给一个组。

SELECT
  assigned_to
  COUNT(id) as cases
  FROM
  <your_table_name_here>
 GROUP BY assigned_to

您可以使用函数COUNT。 COUNT() 函数 returns 匹配指定条件的行数。 GROUP BY 子句将记录分组到汇总行中。 GROUP BY 语句通常与聚合函数(COUNT、MAX、MIN、SUM、AVG)一起使用,以按一列或多列对 result-set 进行分组。

Select AssignedTo, count (*) as cases from table group by  AssignedTo
select id,sum(assigned_to) as Cases from s1 group by id;
id  Cases
1   29232
2   7654