2013-08-24 3 views
0

나는 각에 대한 쿼리를 실행할 수 있습니다 그래서 7 다이빙에 의해 그룹으로 결과 수를 MySQL의 쿼리의 결과를 나누고 싶습니다 그룹.나누기

나는 일정 기간 동안 사용자가 입력 한 항목이있는 테이블이있다. 나는 기간을 몇 일로 계산할 것인가를 7로 나누기 때문에 주간에 쿼리를 실행하고 매주 쿼리를 실행합니다. 예를 들면, 특정 값의 얼마나 많은마다 다를 수 주 일, 다음 주 2 등

기간에 입력되었습니다. 그것을 할

+0

당신은 제한 7을 사용하여 결과를 제한 할 수 있습니다; 한계 7, 8; 기타 등등 또는 그룹 별 명세서를 사용할 수 있지만 더 많은 정보가 없으면 귀하를 도울 수 없습니다. 팁은 모듈러스 연산자 %를 사용하여 한계 수를 계산합니다. –

+0

모든 것이 가능합니다. – Strawberry

+0

달성하고자하는 것을 알지 못하면 의미있는 대답을 할 수 없습니다. 정확히 7 그룹과 뭘하고 싶니? 7이 아니라 8이 아닌 이유는 무엇입니까? 이것은 당신이 찾는 정확히 무엇에 따라, 혼자 SQL에서 달성 될 수 있지만 제공되는 최소한의 정보를 기반으로, 지금까지 가장 좋은 방법은 첫 번째 쿼리 결과는 다음 PHP의 청크와 addditional 로직을 처리 추출하는 것입니다. 내 질문을 편집 한 RobertSeddon 스미스 @ –

답변

0

하나의 방법은 각 행, 각 행의 행 번호를 지정 행들의 최대 수를 계산하고 (7)를 분할하고 (1 내지 7)의 그룹 번호를 할당한다.
그런 다음 임시 테이블에 쿼리의 결과를 저장하고 필요한 그룹 번호를 해당 테이블을 조회 :

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


SELECT * 
FROM results 
WHERE group_nbr = 4; 

SQLFiddle demo