【发布时间】:2020-07-28 10:01:23
【问题描述】:
我有大约相同的表(不包括计数列)。我想计算工作日数(周一至周五)并排除公共假期。
我尝试尝试以下查询
SELECT count(distinct(date)) from MYDB where dummy <> 1
但是,它给出了包括周末在内的唯一总天数。此外,如果使用此命令,它会计算不同的日期,但是,我的日期不会显示整月,因此应该使用另一个逻辑。你能帮忙找出哪个代码更好用吗?
【问题讨论】:
我有大约相同的表(不包括计数列)。我想计算工作日数(周一至周五)并排除公共假期。
我尝试尝试以下查询
SELECT count(distinct(date)) from MYDB where dummy <> 1
但是,它给出了包括周末在内的唯一总天数。此外,如果使用此命令,它会计算不同的日期,但是,我的日期不会显示整月,因此应该使用另一个逻辑。你能帮忙找出哪个代码更好用吗?
【问题讨论】:
Vertica 中应该有一个函数可以从日期中提取工作日,因此要排除周末,您需要添加另一个条件,例如
extract(dow from date) not in (6,0)
(在这种情况下,6 是星期六,0 是太阳)
【讨论】:
where dummy <> 1 and extract(dow from date) not in (6,0)