首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据与当前行数据相关的条件,在当前行之后的几行之外选择

根据与当前行数据相关的条件,在当前行之后的几行之外选择
EN

Stack Overflow用户
提问于 2019-01-16 12:39:28
回答 1查看 41关注 0票数 0

帮我查询一下。我需要以某种方式小组排,但我不知道。我们有一个表,里面有客户呼叫的数据,这个查询需要统计。

条件:一个人在某一日期范围内对同一项目进行多次呼叫。

表:

代码语言:javascript
复制
id  id_person  created_date  
1   1          2019-01-01 10:10:10  
2   1          2019-01-02 10:10:10  
3   1          2019-01-02 10:15:10  
4   1          2019-01-05 10:20:10  
5   2          2019-01-01 10:10:10  
6   2          2019-01-02 10:10:10  
7   3          2019-01-02 10:15:10  

例如,我们在3天内设置了gap参数

查询结果:

代码语言:javascript
复制
1   1          2019-01-01 10:10:10  
4   1          2019-01-05 10:20:10  
5   2          2019-01-01 10:10:10  
7   3          2019-01-02 10:15:10  

例如,我们在1天内设置了gap参数

查询结果:

代码语言:javascript
复制
1   1          2019-01-01 10:10:10  
3   1          2019-01-02 10:15:10  
4   1          2019-01-05 10:20:10  
5   2          2019-01-01 10:10:10  
7   3          2019-01-02 10:15:10  

需要group by person_id并排除包含在row.created_date+gap中的行

EN

回答 1

Stack Overflow用户

发布于 2019-01-16 12:51:51

你的问题以前已经被问过了:

这个解决方案应该可以解决您的问题,并且您可以应用任何您想要的gap参数:Link

代码语言:javascript
复制
SELECT  
    id_person,
    created_date,
    DATEADD(DAY, NoGroup*3, '1999-01-01') AS [Gap Start],
    DATEADD(DAY, NoGroup*3+2, '1999-01-01') AS [Gap End],  
    SUM(DPT)
FROM 
     (
    SELECT
        id_person,
        created_date, 
        DATEDIFF(DAY, '1999-01-01', created_date) AS NoDays,
        DATEDIFF(DAY, '1999-01-01', created_date)/3 AS NoGroup,
        DPT
    FROM your_table
     ) subquery
GROUP BY 
    id_person,
    created_date;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54210518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档