将MySQL SELECT全部划分为7个结果的部分,并在每个部分上运行新查询

时间:2013-08-24 20:18:18

标签: php mysql sql

我想通过将结果数量乘以7来将MySQL查询的结果分成组,以便我可以对每个组运行查询。

我有一张表,其中包含用户在一段时间内输入的条目。我打算计算一段时间是多少天,除以7,所以我有几周,然后每周运行一次查询。例如,在第1周,第2周等输入了多少特定值。

每次都会有不同的时间段。

1 个答案:

答案 0 :(得分:0)

一种方法是为每一行分配一个行号,计算最大行数,然后除以7,并为每一行分配一个组号(从1到7)。
然后将查询结果保存到临时表,并在该表中查询所需的组号:

CREATE TEMPORARY TABLE results AS
SELECT ceil( rn / (  @rn/7 )) group_nbr,
       x.*
FROM ( 
   select (@rn:=@rn+1) rn, abc.* 
   from table_name abc, (select @rn:=0) rn
) x;


SELECT *
FROM results
WHERE group_nbr = 4; 

SQLFiddle demo