嘿,我有以下问题:
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 :(得分:1)
您获得0
行的原因是因为您使用的是聚合函数,然后将结果限制为从second row
开始
您的查询应该像
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 :(得分: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.Org, UA.AccNum, UA.Category
ORDER BY UA.AccNum, UC.QNum ASC
答案 2 :(得分:0)
我猜测userAccount
和userCase
表之间的关系是one-to-many
。一个userCase
可能有很多userAccount
条记录。
试试这个:
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;
添加了GROUP BY UA.AccNum
,如果您有Id
列,请更好地使用该列。