mySQL 查询来计算每个用户的案例数

标签 mysql count inner-join

嘿,我有以下查询:

SELECT UA.Org, UA.AccNum, UA.Category, COUNT(UC.CaseNum) AS totalCases
FROM userAccount UA
INNER JOIN userCase UC ON UA.AccNum = UC.Userlink 
ORDER BY UA.AccNum, UC.QNum ASC
LIMIT 1, 15;

我希望从中得到类似的东西:

  org      | Account  | Category   | totalCases
  ---------------------------------------------
  blah 1   | 2883513  | Blah here 1| 2
  blah 2   | 2998619  | Blah here 2| 3
  blah 3   | 3063328  | Blah here 3| 1
 etc etc...

但是,当我运行该查询时,我得到的只是 0 条记录。采用 COUNT(UC.CaseNum) AS TotalCases 会像平常一样生成 15 行。

用户执行查询时可能有 0 个或更多案例。我确信我需要一个 GROUPBY 在那里,但如果没有数据先出现,最好不要继续添加到我的非工作查询中。

没有totalCases的数据如下所示:

org      | Account  | Category   | Case
-------------------------------------------
blah 1   | 2883513  | Blah here 1| 5691245
blah 1   | 2883513  | Blah here 1| 8952214
blah 2   | 2998619  | Blah here 2| 1478523
blah 2   | 2998619  | Blah here 2| 9965821
blah 2   | 2998619  | Blah here 2| 1028745
blah 3   | 3063328  | Blah here 3| 3605487
etc etc...

任何帮助都会很棒!

最佳答案

您获得 0 行的原因是您使用聚合函数,然后将结果限制为从第二行开始

您的查询应该类似于

SELECT UA.Org, UA.AccNum, UA.Category, COUNT(UC.CaseNum) AS totalCases
FROM userAccount UA
INNER JOIN userCase UC ON UA.AccNum = UC.Userlink 
GROUP BY UA.AccNum, UA.Org, UA.Category
ORDER BY UA.AccNum, UC.QNum ASC

然后您可以限制上述查询的结果

由于您在此处使用 INNER JOIN,结果不会包含具有 0 个测试用例的用户,您可以使用 left join< 来更改此行为

关于mySQL 查询来计算每个用户的案例数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16889245/

相关文章:

php - 如何在使用 JQuery 更新 MySQL 后填充 DIV

php - 检测 MySQL 数据库记录之间的关系

如果符号之间没有空格,C 计数字程序就可以工作,为什么?

mysql - 如何使用两个内部联接修改此查询,以使其停止提供重复结果?

mysql - 基本的 MySQL 查询

mysql - 如何在 MySQL 中只选择查询中的最后一个值?

php - 需要一些关于 php 积分系统的指导

python - 拆分 'counter'的结果

mysql用单​​个查询连接案例计数

node.js - 如何使用node.js控制sequelize中的内连接查询?