【发布时间】:2019-01-23 16:32:24
【问题描述】:
我有一个包含以下表格的商店数据库:
1 - 提供者(ProviderID,Name,Country)
2 - 产品(ProductID,ProviderID,ProductPrice)
3 - 命令(CommandID,ProductID,ProductQuantity,CommandDate)
我做了一个查询,按年计算收益
SELECT EXTRACT(YEAR FROM COMMAND_DATE) AS year,
SUM(PRODUCT_PRICE*PRODUCT_QUANTITY) AS gain
FROM PRODUCT JOIN COMMAND ON PRODUCT.PRODUCT_ID=COMMAND.PRODUCT_ID
GROUP BY year
ORDER BY year
这是输出:
现在我想像 Oracle 一样显示行号,所以我使用了这个查询:
SET @currentRow = 0;
SELECT @currentRow := @currentRow + 1 AS counter,
EXTRACT(YEAR FROM COMMAND_DATE) AS year,
SUM(PRODUCT_PRICE*PRODUCT_QUANTITY) AS gain
FROM PRODUCT JOIN COMMAND ON PRODUCT.PRODUCT_ID=COMMAND.PRODUCT_ID
GROUP BY year
ORDER BY year
但我没有得到我想要的
似乎顺序正在影响行号。我希望它从 1 开始。按柜台订购不是一种选择,因为我需要按年订购。
这就是我想要的样子:
1 2014 1863
2 2015 889
3 2016 2626
...
【问题讨论】:
标签: mysql sql auto-increment rowid