2014-09-05 3 views
0

"선형"이 아닌 결과의 단일 열을 반환하는 select 문이 있습니다 (sum() 및 group by를 사용하여 계산 됨). 결과 목록에 나타나는대로 각각의 개수를 표시하는이 쿼리에 추가 열을 추가하고 싶습니다. 예를 들어select 문에서 반환 된 행 수를 반복하십시오.

:

원래 결과

Sums 
---- 
450 
320 
117 
583 

원하는 결과

Count | Sums 
----- ---- 
1  | 450 
2  | 320 
3  | 117 
4  | 583 

는 임시 테이블을 사용하지 않고 MySQL의에서이 가능합니까?

또는 더 간단히 말해서 select 문에서 1부터 n까지 카운팅을 시작할 수 있습니까? 같은

뭔가 :

SELECT ITERATE(1-99) 

Iterate 
------- 
1 
2 
3 
. 
. 
. 
99 

은 아마도이를 수행 저장 프로 시저를 사용하고 계십니까?

답변

1

하나의 옵션은 다음과 같습니다 브릴리언트

SELECT 
    @`rownum` := @`rownum` + 1 `Count`, 
    `t`.`id`, 
    SUM(`t`.`qty`) `Sums` 
FROM 
    (SELECT @`rownum` := 0) der, `table` `t` 
GROUP BY 
    `t`.`id`; 

SQL Fiddle demo

+0

! 고맙습니다 – Hamking

관련 문제