sql - 每月给出每个行号 - Oracle SQL
问题描述
我有一张这样的桌子:
Month | Date
----------------------
May 2019 | 03.05.19
May 2019 | 04.05.19
May 2019 | 07.05.19
July 2019 | 03.07.19
July 2019 | 05.07.19
July 2019 | 06.07.19
July 2019 | 08.07.19
我想要一个给出以下内容的查询。
Month | Date | Row Count per Month
----------------------
May 2019 | 03.05.19 | 1
May 2019 | 04.05.19 | 2
May 2019 | 07.05.19 | 3
July 2019 | 03.07.19 | 1
July 2019 | 05.07.19 | 2
July 2019 | 06.07.19 | 3
July 2019 | 08.07.19 | 4
所以它给出了每月每行的数量,但我不知道该怎么做(我有比这些更多的月份和日期)。我正在尝试使用 row_number 来完成,但似乎无法正确处理。有小费吗?
解决方案
利用row_number()
select *,row_number() over(partition by month order by date) as Row_Count
from tablename
推荐阅读
- c++ - 如何在 C++ 中创建一个二维数组,其中一部分包含循环计数器,另一部分包含数字列表?
- python - 从 Python 中的当前时间减去 UNIX 纪元时间
- c++ - 在 C++ 中表现不佳。怎么了?
- javascript - 如何为当前活动数字设置垂直计数器的动画?
- php - 简化的正则表达式有利于可维护性和可读性
- bluetooth - Tshark 不会使用 nRF 嗅探器捕获 BTLE 数据包
- java - 以下方法是否被视为插入排序?
- r - 自动为 Lasso 和 Ridge 回归生成交互变量
- c# - 实现依赖倒置原则的程序的入口点
- php - 指向 PHP 文档中锚点的外部链接不起作用