首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mySQL查询以计数每个用户的案例

mySQL查询以计数每个用户的案例
EN

Stack Overflow用户
提问于 2013-06-03 02:21:57
回答 3查看 103关注 0票数 0

嘿,我有以下查询:

代码语言:javascript
复制
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;

我想从中得到类似的东西:

代码语言:javascript
复制
  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条记录。将计数(UC.CaseNum)作为totalCases生成15行,与正常情况一样。

当用户执行查询时,可能有0种或更多的情况。我确信我需要一个GROUPBY,但是没有数据优先,最好不要继续添加到我的非工作查询中。

没有totalCases的数据如下所示:

代码语言:javascript
复制
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...

任何帮助都会很好!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-06-03 02:26:54

获取0行的原因是使用聚合函数,然后将结果限制为从second row开始。

您的查询应该是

代码语言:javascript
复制
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

然后,可以对上述查询的结果进行limit

由于您在这里使用的是INNER JOIN,所以结果不会包含有0测试用例的用户,因此可以使用left join来更改此行为。

票数 1
EN

Stack Overflow用户

发布于 2013-06-03 02:28:36

尝试以下几点

代码语言:javascript
复制
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.Org, UA.AccNum, UA.Category
ORDER BY UA.AccNum, UC.QNum ASC
票数 0
EN

Stack Overflow用户

发布于 2013-06-03 02:35:40

我猜userAccountuserCase表之间的关系是one-to-many。一个userCase可能有许多userAccount记录。

试试这个:

代码语言:javascript
复制
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
ORDER BY UA.AccNum, UC.QNum ASC
LIMIT 1, 15;

UA.AccNum添加组,如果有Id列,最好使用该列。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16889245

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档