2014-09-05 43 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 2014-09-08 14:19:28