gpt4 book ai didi

mysql - 如何递归地运行sql查询?

转载 作者:行者123 更新时间:2023-11-29 06:36:45 24 4
gpt4 key购买 nike

例如,有一个accounts表有:

account_id | ......    
000 | ......
001 | ......
004 | ......
010 | ......
.....
198 | ......

我想获取帐户 id 的分布,而不是一次又一次运行以下查询,有没有更智能的方法来获取 000-010、010-020、...、190-200 的 id 计数?谢谢

SELECT count(account_id)
FROM accounts
WHERE account_id >= '000' AND account_id <= '010';

最佳答案

您可以将account_id除以10来创建一个范围,然后按除后的结果进行分组以获得您想要的结果:

SELECT CONCAT(LPAD(FLOOR(account_id/10)*10,3, '0'), '-', LPAD(FLOOR(account_id/10)*10+9, 3, '0')) AS `range`,
COUNT(*) AS number
FROM accounts
GROUP BY `range`

输出(对于我的演示中的一些示例数据):

range       number
000-009 3
010-019 2
020-029 1
030-039 1
040-049 1
050-059 2

Demo on dbfiddle

关于mysql - 如何递归地运行sql查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53490031/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com