【发布时间】:2017-09-11 12:37:52
【问题描述】:
我有一个带有字段 Datatime(DateTime) 和 sales(Number) 的销售表。
如何编写一个 SQL 查询来获取过去 6 个月按月份分组的数据,其中包含一个新列“运行计数”。
运行计数是一个正整数,从 1 开始(如果销售额为 0),然后如果下个月有销售则为 2(假设有销售并且上个月的运行计数为 1)等等。如果一个月没有销售,则该月的计数将为 0,如果下个月有销售,则以 1 重新开始,依此类推。
示例:
当前月份年份是“09/2017”,3 月、4 月、6 月、7 月、8 月有销售,但 5 月份没有销售(无行)。
所以输出将是:
| Month_Year | Sum(Sales) | Running_Count |
| 03/2017 | 1000 | 1 |
| 04/2017 | 1500 | 2 |
| 05/2017 | 0 | 0 |
| 06/2017 | 300 | 1 |
| 07/2017 | 550 | 2 |
| 08/2017 | 1900 | 3 |
欢迎提出修改此问题的建议。
【问题讨论】:
-
你的问题是什么?
-
附注:FLOAT???当您有可用的精确类型(即 NUMBER)时,为什么要使用近似数据类型? NUMBER 中的 38 位可能数字不足以满足您庞大的销售数字吗?我建议你改变这个。非绝对必要时不要使用 FLOAT。
-
@ThorstenKettner 谢谢,我已经更新了。
-
@kenfire 我知道如何按月分组。我的问题是如何实现运行计数部分。