嘿,我有以下查询:
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/