迭代select语句返回的行数

时间:2014-09-05 15:21:46

标签: mysql stored-procedures stored-functions

我有一个select语句,它返回一列不是"线性" (它们使用sum()和group by计算)。我想在此查询中添加一个附加列,显示它们在结果列表中显示的各自计数。

例如:

原始结果

Sums
----
450
320
117
583

期望结果

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

在不使用临时表的情况下,这是否可以在MySQL中使用?

或者更简单的说,是否可以在select语句中从1开始计数?

类似的东西:

SELECT ITERATE(1-99)

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

也许使用完成此操作的存储过程?

1 个答案:

答案 0 :(得分:2)

一个选项是:

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