当前位置:  开发笔记 > 数据库 > 正文

如何计算已经使用count,group by和之前使用过的SQL查询中的行?

如何解决《如何计算已经使用count,groupby和之前使用过的SQL查询中的行?》经验,为你挑选了2个好方法。

例如,使用此问题的答案:

如何选择提交10个以上提交内容的 所有用户"如何选择提交10个以上提交内容的所有用户".

select userId
from submission   
group by userId
having count(submissionGuid) > 10

现在让我说我想知道这个sql语句输出的很多行.计算行计数行的解决方案的可扩展性如何?



1> user12861..:

在以前发布的示例中有轻微错误,需要子查询的表名别名:

select count(*) from
  (select userId
   from submission 
   group by userId
   having count(submissionGuid) > 10) t

我不确定可伸缩性,但这是解决方案.如果这对您来说缩放不够好,则需要考虑主要的设计更改,例如跟踪那些在单独的表中提交超过10个提交的人,并通过填充提交的应用程序进行更新.或许多其他可能的解决方案



2> BQ...:

嵌套查询:

select count(*) from
  (select userId
   from submission   
   group by userId
   having count(submissionGuid) > 10) n

编辑以结合mbrierst关于需要别名(末尾为"n")的注释,用于嵌套子查询.Oracle不要求这样做,但SQL Server确实如此.随意添加有关其他数据库平台使用情况的评论.

推荐阅读
wurtjq
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有