我有一个数据表,其中包含0到100之间的数字。
我想写一个查询来获取0到10,11到20 ......和91到100
中的记录计数这可能吗?
非常感谢您的帮助。
戴夫
答案 0 :(得分:2)
假设你的表看起来像这样...
CREATE TABLE `test1` (
`ts` BIGINT(20) DEFAULT NULL
) ENGINE=INNODB;
......你可以用数学方法解决这个问题:
SELECT ROUND((T.ts-1)/10) AS "tt",
COUNT(*)
FROM test1 AS T
GROUP BY tt;
答案 1 :(得分:0)
子查询将为您完成工作
SELECT
(SELECT COUNT(brands) FROM data_table where brands BETWEEN 1 and 10 ) as '1-10',
...
(SELECT COUNT(brands) FROM data_table where brands BETWEEN 90 and 100 ) as '90-100',
答案 2 :(得分:0)
从中选择计数( 选择* from(select * from table where val> ='lowerlimit')其中val< ='upperlimit')
答案 3 :(得分:0)
这应该给你结果:
SELECT MIN(`id`) `id_from`, MAX(`id`) as `id_to`, COUNT(1) `count_id`
FROM `session`
GROUP BY (FLOOR(IF(id>0, id-1, id) / 10));
请随意根据您的架构更改表名和列名。
希望这有帮助。