例如,使用此问题的答案:
如何选择提交10个以上提交内容的 所有用户"如何选择提交10个以上提交内容的所有用户".
select userId from submission group by userId having count(submissionGuid) > 10
现在让我说我想知道这个sql语句输出的很多行.计算行计数行的解决方案的可扩展性如何?
在以前发布的示例中有轻微错误,需要子查询的表名别名:
select count(*) from (select userId from submission group by userId having count(submissionGuid) > 10) t
我不确定可伸缩性,但这是解决方案.如果这对您来说缩放不够好,则需要考虑主要的设计更改,例如跟踪那些在单独的表中提交超过10个提交的人,并通过填充提交的应用程序进行更新.或许多其他可能的解决方案
嵌套查询:
select count(*) from (select userId from submission group by userId having count(submissionGuid) > 10) n
编辑以结合mbrierst关于需要别名(末尾为"n")的注释,用于嵌套子查询.Oracle不要求这样做,但SQL Server确实如此.随意添加有关其他数据库平台使用情况的评论.