在部分select语句中循环

时间:2019-07-26 08:21:08

标签: mysql

是否可以在select语句中进行一些循环?

示例: 代替

select (select count(*) from price_list where price between 0 and 1), as 1, 
(select count(*) from price_list where price between 1 and 2) as 2, 
(select count(*) from price_list where price between 2 and 3) as 3);

(还有更多嵌套的select语句)执行类似的操作

select @SOME_FUNCTION_WHICH_REPEAT_CODE_WITH_DISTINCT_VALUES

我知道可以使用while循环来完成此操作,但是我想在单个查询中获得结果...

1 个答案:

答案 0 :(得分:0)

您更有可能使用类似这样的条件聚合

select sum(case when price between 0 and 1 then 1 else 0) as '1',
       sum(case when price between 1.1 and 2 then 1 else 0) as '2'
etc

但是我想的问题是,您想要多少个范围,从什么开始并以什么递增。如果您添加了示例数据并说明了您想要的内容,而不是问一个封闭的问题,将会有所帮助。