如何选择所有提交10个以上的用户
时间:2020-03-06 14:54:38 来源:igfitidea点击:
我有一个非常简单的提交表:userId,submittingGuid
我想选择表中具有10个以上提交的所有用户的用户名(使用简单的内部联接即可)。
我会用嵌入式查询和一个分组来计数提交次数...但是有更好的方法(没有嵌入式查询)吗?
谢谢!
解决方案
select userId, count(*) from submissions having count(*) > 10 group by userId
我相信这是最简单的方法:
select userId from submission group by userId having count(submissionGuid) > 10
SELECT username FROM usertable JOIN submissions ON usertable.userid = submissions.userid GROUP BY usertable.username HAVING Count(*) > 1
*假设"用户"表称为用户表,并且其列名为"用户名"
我认为正确的查询是这样的(SQL Server):
SELECT s.userId, u.userName FROM submission s INNER JOIN users u on u.userId = s.userId GROUP BY s.userId, u.username HAVING COUNT(submissionGuid) > 10
如果我们没有HAVING子句:
SELECT u.userId, u.userName FROM users u INNER JOIN ( SELECT userId, COUNT(submissionGuid) AS cnt FROM submission GROUP BY userId ) sc ON sc.userId = u.userId WHERE sc.cnt > 10
选择用户标识,count(submissionGUID)作为submitCount
从提交
按用户ID分组,submitCount
提交计数> 10