sql - 根据日期和 N 的增量重新启动行号
问题描述
我有一个表,其中包含我用日期表生成的以下数据
date day_num (DAY_NUM % 7)
2019-07-09 0 0
2019-07-10 1 1
2019-07-11 2 2
2019-07-12 3 3
2019-07-13 4 4
2019-07-14 5 5
2019-07-15 6 6
2019-07-16 7 0
我基本上想获得一个从 0 重新开始的周数,我需要帮助弄清楚最后一部分
最终输出看起来像这样
date day_num (DAY_NUM % 7) week num
2019-07-09 0 0 1
2019-07-10 1 1 1
2019-07-11 2 2 1
2019-07-12 3 3 1
2019-07-13 4 4 1
2019-07-14 5 5 1
2019-07-15 6 6 1
2019-07-16 7 0 2
这是我到目前为止的sql
select
SUB.*,
DAY_NUM%7
FROM(
SELECT
DISTINCT
id_date,
row_number() over(order by id_date) -1 as day_num
FROM schema.date_tbl
WHERE Id_date BETWEEN "2019-07-09" AND date_add("2019-07-09",146)
解决方案
基于您的查询:
select SUB.*, DAY_NUM%7,
DENSE_RANK() OVER (ORDER BY FLOOR(DAY_NUM / 7)) as weeknum
FROM (SELECT DISTINCT id_date,
row_number() over(order by id_date) -1 as day_num
FROM schema.date_tbl
WHERE Id_date BETWEEN "2019-07-09" AND date_add("2019-07-09", 146)
) x
推荐阅读
- android - Android paging2 库:Network(PageKeyedDataSource) + 数据库惯用/预期的实现方式
- java - 对提交的引用不明确:
提交(可调用 ) 中的 ExecutorService 和方法 submit(Runnable) 中的 ExecutorService 匹配 - flutter - 如何在颤动中为十进制创建序列化程序
- python - 使用类制作 Tkinter Gui
- html - v-slot 只能用于组件或
New to using Vue & nuxt, but I am getting an error that: v-slot can only be used on components or
Any advice on what to do, I googled it, looked at Nuxt documentation, and I'm a little lost. Any advic
- sql - Coldfusion - 需要在开始和结束标签之间获取字符串数据
- python - Python keras sequential model predicts the same value (y_train average) for all inputs
- machine-learning - 我的 PyTorch GAN 正在从产生随机噪声变为没有收敛的黑暗。为什么是这样?
- python - Different File Paths in Python ZipFile Depending on .write() vs .writestr()
- javascript - Collapsible div inside of bootstrap table