开发者社区> 问答> 正文

SQL查询可对按ID分组的行进行计数,但限制每组的计数

所以我有一个不寻常的要求。我正在处理具有数十亿行的表。

该表具有非唯一列“ id”,并且具有列“ data”

我想做的是对“ id”分组的行数进行计数,但将计数限制为仅150个条目。我只需要知道任何给定的ID是否有150行。

这是为了优化查询和性能。

不必计数。我只需要知道给定的id是否具有150个条目,而无需MySQL在查询期间继续计数条目。如果这样的话。

我知道如何进行计数,也知道如何进行分组,并且我都知道如何进行分组,但是计数会返回一个以百万为单位的数字,这浪费了处理时间,并且查询需要运行数十万个id 。

问题来源于stack overflow

展开
收起
保持可爱mmm 2019-11-15 12:02:22 618 0
1 条回答
写回答
取消 提交回答
  • 我认为这是不可能的。您将不得不扫描整个表,以了解哪些表id具有至少150个条目。

    所以:

    select id from mytable group by id having count(*) >= 150 在索引为on的情况下id,它应该尽可能高效。

    2019-11-15 12:02:37
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server在电子商务中的应用与实践 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载