此问题在此处已有答案:
I wanna get query result Group By and Orderd by Date(2个答案)
Pick lowest row in a group(2个答案)
Sql Grouping by change Date(3个答案)
上个月关门了。
我正在处理一个oracle数据库。
| 客户|类别|子类别|日期|
| --|--|--|--|
| 1 |饲料|粒料|2023年10月5日|
| 1 |饲料|干草|23年9月18日|
| 1 |饲料|粒料|23年8月6日|
| 1 |饲料|粒料|23年7月4日|
| 1 |饲料|粒料|21-六月_23|
| 1 |配件|铅|23年5月15日|
| 1 |配件|铅|23年3月1日|
对于每个客户和类别,我需要他们每次返回到子类别的第一个日期。例如,颗粒是在6月21日首次购买的,之后又购买了几次,然后他们切换到了干草-所以我们将报告该行,然后返回到颗粒,所以再次需要该行。
| 客户|类别|子类别|日期|
| --|--|--|--|
| 1 |饲料|粒料|2023年10月5日|
| 1 |饲料|干草|23年9月18日|
| 1 |饲料|粒料|21-六月_23|
| 1 |配件|铅|23年3月1日|
从上述数据
Min与group by不起作用,因为它只会给我给予子类别的第一个示例,我希望他们每次返回到子类别的第一个日期。
看看这里的其他问题,我想分区可能会有帮助,但我似乎不能让它正常工作。也许排名属于那里的某个地方?
我觉得这是真的很容易和明显的人谁知道他们在做什么,但显然这不是我,因为我只有几个步骤过去选择 * 从……
提前向您提供任何帮助。
1条答案
按热度按时间htrmnn0y1#
你有一个
gaps and islands
问题,你可以使用两个row_numbers之间的差异来给予一个唯一的id给每个连续的行组:字符串
Demo here