SQL LEN() 函数 ,case when,聚合函数的用法

SELECT aa.[User_Id],cc.[User_Name],dd.Name AS DepName,aa.Module_Id,aa.Module_Name,

SUM(CASE aa.Operate_Type WHEN ‘2‘ THEN OperateNum END ) AS ‘AddNum‘,

SUM(CASE aa.Operate_Type WHEN ‘3‘ THEN OperateNum END ) AS ‘EditNum‘ ,

SUM(CASE aa.Operate_Type WHEN ‘4‘ THEN OperateNum END ) AS ‘DelNum‘

FROM (

SELECT a.[User_Id],a.Module_Id,c.Module_Name,a.Operate_Type,COUNT(1) AS OperateNum FROM dbo.Sys_User_Log AS a

INNER JOIN dbo.Sys_Module AS c ON a.Module_Id = c.Module_Id

WHERE LEN(a.Module_Id) = 6 AND (a.Operate_Type =‘2‘ OR a.Operate_Type =‘3‘ OR a.Operate_Type =‘4‘)//LEN() 函数

GROUP BY a.[User_Id],a.Module_Id,c.Module_Name,a.Operate_Type

) AS aa

INNER JOIN dbo.Sys_User AS cc ON aa.[User_Id] = cc.[User_Id]

INNER JOIN dbo.Sys_DepInfo AS dd ON cc.DepInfo_Id = dd.Id

GROUP BY aa.[User_Id],cc.[User_Name],dd.Name,aa.Module_Id,aa.Module_Name

ORDER BY aa.[User_Id],aa.Module_Id

时间: 2024-10-10 02:35:14

SQL LEN() 函数 ,case when,聚合函数的用法的相关文章

SQL LEN() 函数 ,case when,聚合函数的使用方法

SELECT aa.[User_Id],cc.[User_Name],dd.Name AS DepName,aa.Module_Id,aa.Module_Name, SUM(CASE aa.Operate_Type WHEN '2' THEN OperateNum END ) AS 'AddNum', SUM(CASE aa.Operate_Type WHEN '3' THEN OperateNum END ) AS 'EditNum' , SUM(CASE aa.Operate_Type WH

窗口聚合函数与分组聚合函数的异同

窗口聚合函数与分组聚合函数的功能是相同的:唯一不同的是,分组聚合函数通过分组查询来进行,而窗口聚合函数通过OVER子句定义的窗口来进行. --<T-SQL性能调优秘笈---基于SQL Server2012窗口函数>2.1.1窗口聚合函数描述

SQL语句汇总(三)——聚合函数、分组、子查询及组合查询 - Darly

–COUNT:统计行数量 –SUM:获取单个列的合计值 –AVG:计算某个列的平均值 –MAX:计算列的最大值 –MIN:计算列的最小值 首先,创建数据表如下: 执行列.行计数(count): 标准格式 SELECT COUNT(<计数规范>) FROM <表名> 其中,计数规范包括: - * :计数所有选择的行,包括NULL值: - ALL 列名:计数指定列的所有非空值行,如果不写,默认为ALL: - DISTINCT 列名:计数指定列的唯一非空值行. 例,计算班里共有多少学生:

SQL server 模糊查询 排序 聚合函数 数学函数 字符串函数 时间日期函数 转换、函数转换

create database lianxi831  --创建数据库gouse lianxi831  --引用数据库gocreate table xs  --插入表格( code int not null,  --写入内容 name varchar(10), cid varchar(18), banji varchar(10), yufen decimal(18,2), shufen decimal(18,2), yingfen decimal(18,2),)goinsert into xs v

SQL SERVER 2005允许自定义聚合函数-表中字符串分组连接

不多说了,说明后面是完整的代码,用来将字符串型的字段的各行的值拼成一个大字符串,也就是通常所说的Concat 例如有如下表dict  ID  NAME  CATEGORY  1 RED  COLOR   2 BLUE COLOR  3 APPLE  FRUIT  4 ORANGE FRUIT 执行SQL语句:select category,dbo.concatenate(name) as names from dict group by category. 得到结果表如下  category  

【2017-03-12】SQL Sever 子查询、聚合函数

一.子查询 把一条查询语句,当做值来使用子句的查询结果必须是一列子句可以返回多行数据,但必须是一列 select * from 表名 where 列名 =,>,<(select * from 表名 where 列名...) in/not in 列名 in(值,值,值)表示取值在后面提供的值以内,相当于 列名=值 or 列名=值 or 列名=值 例:select * from car where oil=7.4 or oil=8 or oil=8.3 与 select *from car whe

SQL中的case when then else end用法

转载自 http://lj.soft.blog.163.com/blog/static/7940248120109215191358/ Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方

【语法】SQL中的case when then else end用法-解决一个字段根据条件取不同值

Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END --Case搜索函数 CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END 这两种方式,可以实现相同的功能.简单Case函数的写法相对比较简洁,但是和Case搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要

Spark 系列(十一)—— Spark SQL 聚合函数 Aggregations

一.简单聚合 1.1 数据准备 // 需要导入 spark sql 内置的函数包 import org.apache.spark.sql.functions._ val spark = SparkSession.builder().appName("aggregations").master("local[2]").getOrCreate() val empDF = spark.read.json("/usr/file/json/emp.json"