ORACLE SQL按日期分组,日期以天为单位
我正试着按一天之内的日期分组ORACLE SQL按日期分组,日期以天为单位,sql,oracle,Sql,Oracle,我正试着按一天之内的日期分组 EX:2019年2月19日和2019年2月20日将分组。对于上下文,我在GROUPBY语句中使用它。是否可以使用Datediff之类的值并使其等于1?一直在搜索,但找不到任何相关信息。这是您想要的吗 Select date-t1.date, count(*) from(Select date from table) t1 where date<>t1.date and
EX:2019年2月19日和2019年2月20日将分组。对于上下文,我在GROUPBY语句中使用它。是否可以使用Datediff之类的值并使其等于1?一直在搜索,但找不到任何相关信息。这是您想要的吗
Select date-t1.date,
count(*)
from(Select date
from table) t1
where date<>t1.date
and date-t1.date=1
group by
date-t1.date ;
如果你有开始的一天,这是可能的 在我工作的一个案例中,要求将这些日期从月开始日期开始分组
Select count(1) as cnt -- or whatever your logic is
From your_table
Group by trunc(yourdate, 'month'),
Ceil(Extract(day from yourdate)/2);
这将使团队中任何一个月的第31个月不受影响。但是是的,你19岁和20岁的约会对象会在同一组
干杯 请提供样本数据和预期结果。如果连续三天呢?对于日期x、y、z等,不能按x-y=1或y-x=1这样的关系分组,因为该关系是不可传递的。考虑日期2/18、2/19、2/20。他们都应该在一个小组里吗?但是,两个极端相隔两天,而不是一天。他们应该分成两组吗?但是中间的那一组属于哪一组呢?它不可能同时属于两者——这与group by的定义相矛盾。所以,在我们给你任何答案之前,你必须澄清你的问题。我不认为OP是这么说的。。。显然,根据他的奇怪逻辑,5月2日和3日应该是同一组。但也许不是——谁知道呢。