技术学习

我所喜欢的

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

需求说明:

我有一个客户表,还有一个客户的体验记录表,我需要汇总客户体验信息如下:

客户名称,本周体验次数,本月体验次数,本年度体验次数,累计体验次数,首次体验时间,最近体验时间  信息,如何用一个SQL语句搞定:

COUNT函数官方说明:指定 COUNT 返回唯一非 Null 值的数量。

所以变相实现如下:

SELECT
        me.CustomerCode,
        WeekExperienceCount = COUNT(CASE WHEN ExpDate>DATEADD(DAY,-7,GETDATE()) THEN 1 ELSE NULL END),
        MonthExperienceCount = COUNT(CASE WHEN ExpDate>DATEADD(MONTH,-1,GETDATE()) THEN 1 ELSE NULL END),
        YearExperienceCount = COUNT(CASE WHEN ExpDate>DATEADD(YEAR,-1,GETDATE()) THEN 1 ELSE NULL END),
        TotalExperienceCount = COUNT(me.RowUid),
        FirstExperienceDate = MIN(me.ExpDate),
        LastExperienceDate = MAX(me.ExpDate)
    FROM dbo.MD_Experience me
    GROUP BY me.CustomerCode

 

posted on 2024-07-08 15:44  飘扬De黑夜  阅读(37)  评论(0编辑  收藏  举报