我有一个表有一个自动递增的数字主。我正在尝试获取与按主键增量分组的条件相匹配的行数。根据数据:
| id | value |
|----|-------|
| 1 | a |
| 2 | b |
| 3 | a |
| 4 | a |
| 5 | b |
| 6 | a |
| 7 | b |
| 8 | a |
| 9 | b |
| 10 | b |
| 11 | a |
| 12 | b |
如果我想知道有多少行是匹配的 value = 'a'
对于每五行,结果应为:
| count(0) |
|----------|
| 3 |
| 2 |
| 1 |
我可以在 SELECT
陈述,比如:
SELECT (SELECT count(0)
FROM table
WHERE value = 'a'
AND id > 0
AND id <= 5) AS `1-5`,
(SELECT count(0)
FROM table
WHERE value = 'a'
AND id > 5
AND id <=10) AS `6-10`,
...
但是有没有一种方法可以用 GROUP BY
语句或类似的东西,我不必手动写出增量?如果没有,是否有比数据库中的一系列子查询更省时的方法 SELECT
如上例所示的语句?
2条答案
按热度按时间p8h8hvxi1#
下面的聚合查询应该可以做到这一点:
n1bvdmb62#
你可以把id除以5然后
ceil
结果是: