首页 > 数据库 >SQL Server 实现类似CountIF的函数

SQL Server 实现类似CountIF的函数

时间:2024-07-08 15:56:31浏览次数:14  
标签:COUNT me END 体验 ExpDate Server CountIF SQL NULL

需求说明:

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

客户名称,本周体验次数,本月体验次数,本年度体验次数,累计体验次数,首次体验时间,最近体验时间  信息,如何用一个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

 

标签:COUNT,me,END,体验,ExpDate,Server,CountIF,SQL,NULL
From: https://www.cnblogs.com/volts0302/p/18290021

相关文章

  • 免费分享一套SpringBoot+Vue超市(进销存,收银,积分)管理系统【论文+源码+SQL脚本】,帅呆
    大家好,我是java1234_小锋老师,看到一个不错的SpringBoot+Vue超市(进销存,收银,积分)管理系统,分享下哈。项目介绍本论文设计并实现了一套基于SpringBoot、Vue和MySQL的超市管理系统。该系统旨在通过现代化的Web应用技术提升超市管理效率和用户体验。首先,通过详细的需求分析和功......
  • MYSQL常用SQL语句
    数据库概述1、什么是数据库管理系统?数据管理系统是一种在数据库中组织和存储数据的软件应用程序。常见的数据库管理系统分为两大类:关系型数据管理系统和非关系型管理系统关系型数据库:MySQL、Oracle、SQLServer、Access非关系型数据库:MongoDB2、什么是数据库?数据库(Databas......
  • sql-labs
    Level-1目标:获取emails中的所有email_id字符内容wp第一步:判断闭合:输入\,后面是',是单引号闭合http://localhost/sqli-labs-master/Less-1/?id=1\注释符:--+使用注释符将后面的内容注释掉,使其不报错第二步:判断多少个字段,3不报错,4报错,证明有3列http://localhost/sqli-labs-......
  • Mysql中存储引擎简介、修改、查询、选择
    场景数据库存储引擎数据库存储引擎是数据库底层软件组件,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据的操作。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎还可以获得特定的功能。现在许多数据库管理系统支持多种数据引......
  • Q:在PostgreSQL中跟踪和分析查询日志
    在PostgreSQL中,跟踪和分析查询日志是排查性能瓶颈的重要步骤。通过查看和分析查询日志,我们可以了解哪些查询在执行时遇到了问题,例如执行时间过长、资源消耗过大等。以下是一些建议和步骤,帮助你有效地跟踪和分析PostgreSQL的查询日志。 启用查询日志首先,你需要启用查询日志功......
  • Docker部署Django+MySQL+Redis+Nginx+uWSGI+Celery(超详细)
    一、知识储备经过我们之前学习的Docker相关知识,现在我们来进行实战,以下介绍如何通过DockerCompose部署Django项目:先前知识:Docker学习笔记(一)概念理解-CSDN博客Docker学习笔记(二)镜像、容器、仓库相关命令操作-CSDN博客Docker学习笔记(三)Dockerfile-CSDN博客DockerCompose......
  • nginx作为反向代理服务器:代理MySQL、Postgresql、Redis及多个TCP服务
    使用Nginx作为反向代理服务器,可以代理MySQL、PostgreSQL、Redis及多个TCP服务。这需要配置Nginx的stream模块。以下是详细的配置步骤:1.确保Nginx支持stream模块首先,确保Nginx已经编译并支持stream模块。运行以下命令检查:nginx-V在输出中查找--with-str......
  • springboot在线商城系统源码idea开发mysql数据库
    下载地址:https://download.csdn.net/download/qq_41221322/89519994摘要近年来,网上购物成了风靡全球的一种现象,大家逐渐接受了网上下单,隔天取货的这种方式。我们分析了一些购物网站现有的不足,结合我们所学的知识,制作了一款购物网站程序。学以致用,语言采用了大学时期学习的J......
  • 【SQL】选择⽤ B+ 树,⽽不是普通⼆叉树的原因
    使用B+树而不是普通二叉树(BST)有几个关键的原因,特别是在数据库和文件系统中,B+树的设计更适合高效的数据存储和检索。以下是一些主要原因:1.磁盘I/O效率B+树的节点包含多个键和指针,使其高度比普通二叉树更低。这意味着在查找某个键时,需要访问的节点数量更少,从而减少了磁......
  • Tool-Gitlab-重置数据库,修复server迁移token异常
    Tool-Gitlab-重置数据库,修复server迁移token异常迁移gitlab的server数据之后,导致token异常影响:修改工程配置信息,提交时页面报错502sudogitlab-railsdbconsole--databasemainDELETEFROMci_group_variables;DELETEFROMci_variables;UPDATEprojectsSETrunners_token......