首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SQL使用group by获取SUM,但有条件地对两列之一的内容求和

在SQL中,使用GROUP BY语句可以对结果集进行分组,并对每个组进行聚合操作。如果需要对两列之一的内容进行求和,并且有条件限制,可以使用CASE语句来实现。

下面是一个示例查询:

代码语言:txt
复制
SELECT column1, SUM(CASE WHEN condition THEN column2 ELSE 0 END) AS sum_column2
FROM table
GROUP BY column1

在上述查询中,column1是用于分组的列,condition是对column2进行求和的条件,column2是需要求和的列,table是数据表的名称。

这个查询将根据column1进行分组,并对每个组中满足条件的column2值进行求和。如果条件不满足,则将column2的值设为0。最后,使用AS关键字给求和结果起一个别名sum_column2。

这种查询适用于需要根据某个列进行分组,并对另一个列进行条件求和的场景。例如,假设有一个销售订单表,需要按照产品类别进行分组,并计算每个类别下销售数量大于100的产品的销售总额。

推荐的腾讯云相关产品:腾讯云数据库MySQL、腾讯云云服务器、腾讯云云函数、腾讯云云原生应用引擎。

腾讯云数据库MySQL产品介绍链接地址:https://cloud.tencent.com/product/cdb

腾讯云云服务器产品介绍链接地址:https://cloud.tencent.com/product/cvm

腾讯云云函数产品介绍链接地址:https://cloud.tencent.com/product/scf

腾讯云云原生应用引擎产品介绍链接地址:https://cloud.tencent.com/product/tke

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Java 进阶篇】深入理解 SQL 分组查询

SQL 中,查询是其中最重要部分之一,通过查询,我们可以从数据库中检索所需数据。...在本文中,我们将深入探讨 SQL分组查询,包括其基本语法、常用聚合函数、分组筛选条件、多重分组、分组排序等方面的内容。...统计信息:某个数值进行统计,如求和、平均值、最大值、最小值等。 数据透视:将数据按照不同维度进行切割和聚合,以便进行多维度分析。 数据筛选:对数据进行筛选,只选择符合条件数据行。...基本语法 SQL 分组查询基本语法如下所示: SELECT 1, 2, 聚合函数(3) FROM 表名 GROUP BY 1, 2 HAVING 条件 让我们逐步解释每个部分含义: SELECT...在编写分组查询时,重要是理解基本语法、聚合函数应用和条件筛选方法。 在实际应用中,分组查询通常与其他 SQL 查询语句结合使用,以便更全面分析和报告数据。

40320

MySQL系列之基础查询

内容介绍 本篇文章主要讲解SQL查询基础语法以及其中一些关键字用法,其中包括:select,from,where,group by,order by,limit等。...select name from info; select name, age from info; 这SQL语句都是从数据表info中获取单个或多个字段,此处需要注意是select后面写是需要获取字段名...现在想得出每个人对应总金额,我们就可以使用group by来客户进行分组,然后金额进行求和group by作用类似于下图 ?...在MySQL中,如果需要求和我们可以使用函数sum(),函数具体用法会单独写成一篇文章来讲解,咱们来看下SQL语句写法 select name, sum(price) from info group...order by order by语句用于根据指定select输出结果进行排序, order by语句有个参数 asc和desc,默认排序规则是从小到大,也就是asc,如果需要从小到大可以省略

91620
  • mysql基本命令

    -- $分组查询(关键字:group by) -- 跟随聚合函数使用:group by(被分组列名); -- select查询时,被分组要出现在select选择后面; -- ↓按照2相同内容...1进行求和并显示 select sum(1),2 from 表名 group by 2; -- +:结合条件查询时,条件在前↓: select sum(1),2 from 表名 where...2 like '%张三%' group by 2; -- 按照2中'张三'内容1进行求和并显示; -- +增加排序,排序要加在最后 select sum(1),2 from 表名 where...2 like '%张三%' group by 2 order by sum(1) desc; -- 按照2中'张三'内容1进行求和并按降序显示; -- +可以用as临时命名一个函数[sum...2中'张三'内容1进行求和并按降序显示且只显示 sum(1) 值大于18内容; -- $分组查询:(关键词:limit x,y) -- x:表示从第几行开始显示(不包括x行,x为0时,可省略不写

    1.5K20

    【数据库设计和SQL基础语法】--查询数据--聚合函数

    COUNT 函数是 SQL 中常用聚合函数之一,用于快速计算行数。在数据统计和分析中具有广泛应用,通过不同参数和条件组合,可以灵活满足各种统计需求。...注意事项 SUM 函数通常与 GROUP BY 子句结合使用,用于不同组数据进行总和计算。 结果是一个数值,表示满足条件总和。 SUM 函数是 SQL 中用于计算数值总和重要聚合函数。...注意事项 AVG 函数通常与 GROUP BY 子句结合使用,用于不同组数据进行平均值计算。 结果是一个数值,表示满足条件平均值。...注意事项 MIN 函数通常与 GROUP BY 子句结合使用,用于不同组数据计算最小值。 结果是一个数值,表示满足条件最小值。 MIN 函数是 SQL 中用于计算最小值关键聚合函数。...注意事项 MAX 函数通常与 GROUP BY 子句结合使用,用于不同组数据计算最大值。 结果是一个数值,表示满足条件最大值。 MAX 函数是 SQL 中用于计算最大值关键聚合函数。

    52310

    【数据库设计和SQL基础语法】--查询数据--聚合函数

    COUNT 函数是 SQL 中常用聚合函数之一,用于快速计算行数。在数据统计和分析中具有广泛应用,通过不同参数和条件组合,可以灵活满足各种统计需求。...注意事项 SUM 函数通常与 GROUP BY 子句结合使用,用于不同组数据进行总和计算。 结果是一个数值,表示满足条件总和。 SUM 函数是 SQL 中用于计算数值总和重要聚合函数。...注意事项 AVG 函数通常与 GROUP BY 子句结合使用,用于不同组数据进行平均值计算。 结果是一个数值,表示满足条件平均值。...注意事项 MIN 函数通常与 GROUP BY 子句结合使用,用于不同组数据计算最小值。 结果是一个数值,表示满足条件最小值。 MIN 函数是 SQL 中用于计算最小值关键聚合函数。...注意事项 MAX 函数通常与 GROUP BY 子句结合使用,用于不同组数据计算最大值。 结果是一个数值,表示满足条件最大值。 MAX 函数是 SQL 中用于计算最大值关键聚合函数。

    58610

    如何快速分析出城市人口流动数量?

    需要注意group by子句列出每一个字段都必须是select检索或者表达式,不能是聚集函数,也不能使用别名,group by分组后,如有条件筛选,使用Having语句过滤。...(日期,'%w')=6 or date_format(日期,'%w')=0) group by 流出城市; 查询结果: 即下面标红色框部分求和: 【本题考点】 1、多条件并列and操作符,返回满足所有给定条件行...下列字符和字符串是常用: 格式化日期常用字符串: 3、SQL常用日期提取函数: 4、or操作符,筛选结果只要满足其中之一条件就被筛选出来,在与and连用时,优选计算and,and拥有较高计算次序...【问题3解题思路】: 计算2018年流入流出长春总人数 1、解题思路:先把符合条件"流入"的人数计算出来,并把符合条件"流出"的人数计算出来,者合并作为一个整体,然后整体结果再求和。...SQL书本语句比较简单,看着都会,也不难,写都写出来,可是一运行发现却是错,写跟运行正确是回事,只有实际运行才能找出错误,才能有收获,技术才能提高。

    98630

    MySQL 怎么用索引实现 group by?

    本文我们一起来探寻 MySQL 使用索引实现 group by 过程,使用临时表实现 group by 会单独用一篇文章来介绍。 本文内容基于 MySQL 5.7.35 源码。...记录符合 where 条件,进行聚合函数逻辑处理。 如果当前记录分组前缀(示例 SQLgroup by e1 字段值)和上一条记录分组前缀不一样,说明需要结束上一个分组,并开启新分组。...松散索引扫描 如果 select 语句执行过程中使用了松散索引扫描实现 group by,explain 输出结果 Extra 会显示 Using index for group-by。...Item_sum_min 执行阶段,读取分组最小值过程分为步: 读取分组前缀(示例 SQLgroup by e1 字段值),从存储引擎读取分组第一条记录,得到分组前缀。...在执行阶段,通过把 avg() 字段值累加到 sum 属性进行分组求和 count 属性进行自增实现分组计数;通过 sum / count 计算得到分组平均值。

    6.6K60

    MySQL 怎么用索引实现 group by?

    本文我们一起来探寻 MySQL 使用索引实现 group by 过程,使用临时表实现 group by 会单独用一篇文章来介绍。 本文内容基于 MySQL 5.7.35 源码。...记录符合 where 条件,进行聚合函数逻辑处理。 如果当前记录分组前缀(示例 SQLgroup by e1 字段值)和上一条记录分组前缀不一样,说明需要结束上一个分组,并开启新分组。...松散索引扫描 如果 select 语句执行过程中使用了松散索引扫描实现 group by,explain 输出结果 Extra 会显示 Using index for group-by。...Item_sum_min 执行阶段,读取分组最小值过程分为步: 读取分组前缀(示例 SQLgroup by e1 字段值),从存储引擎读取分组第一条记录,得到分组前缀。...在执行阶段,通过把 avg() 字段值累加到 sum 属性进行分组求和 count 属性进行自增实现分组计数;通过 sum / count 计算得到分组平均值。

    4.9K20

    【数据库设计和SQL基础语法】--查询数据--分组查询

    一、分组查询概述 1.1 什么是分组查询 分组查询是一种 SQL 查询技术,通过使用 GROUP BY 子句,将具有相同值数据行分组在一起,然后每个组应用聚合函数(如 COUNT、SUM、AVG等)...FROM sales_orders GROUP BY product_id; 在这个例子中,我们按照产品ID进行分组,并使用个聚合函数,SUM 和 AVG。...4.2 GROUP BY 与 ORDER BY 区别 GROUP BY 和 ORDER BY 是 SQL 查询中个不同子句,它们有着不同作用: GROUP BY: 作用: GROUP BY 用于查询结果进行分组...六、ROLLUP 和 CUBE 6.1 ROLLUP 使用 ROLLUP 是 SQL 中用于进行多层次聚合操作符之一。它允许你在查询中指定多个层次分组,并在同一查询中获取这些层次汇总结果。...需要注意是,ROLLUP 生成总计行会有 NULL 值,表示在该列上总计。 6.2 CUBE 使用 CUBE 是 SQL 中用于进行多维度聚合操作符之一

    89110

    SQL | CASE WHEN 实战 -- 转置财报

    知识储备 年月销量数据表 sales SQL 编辑器(笔者 dbForge Studio) SQL 基本知识(SELECT, GROUP BY, AS, 聚合函数SUM) 业务背景 转置财务报表,将源数据以更简洁明了形式呈现给同事...年份分组,每一年各月份零散销量进行汇总统计,行转置成,打横输出,列名刚好对应月份,十分简洁明了。...Step3:正式组合 先看首列,只是显示个年份, year_ 使用 ' 搜索 CASE ' SELECT CASE WHEN year_ = 2018 THEN 2018 WHEN year_ =...,仅尝试取出一月份对应销量,再求和。...若我们 THEN 后面的 amount 使用,即 SUM(amount) ,则无法得到我们想要结果(等下展示) 同理,应用到每一个月中,只是复制粘贴问题了。

    1.1K10

    数据库MongoDB-聚合查询

    ,别名:{聚合运算:"$运算"}}},{条件筛选:{键名:{运算条件:运算值}}}]) 常见mongo聚合操作和mysql查询做类比 求和 - $sum 查询dev集合中一共有多少个文档。...相当于SQL分组语法group by column_name中column_name部分。如果根据某字段值分组,则定义为_id:’$字段名’。...取值是‘ sum取值是‘field名’(要注意有单引号或双引号),表示该field求累加和 取总和 sum取值必须是字符串类型,有双引号。...$ db.c1.aggregate([{$group:{_id:"$name",totalAge:{$sum:"$age"}}}]); 条件筛选 - $match match和group同级操作符,需要写在条件...:"$name",avgAge:{$avg:"$age"}}}]); 统计结果返回数组 - $push 分组后按照分组数组进行合并,如果希望看到某个合并之前所有数据可以使用$push,把分组后同一组所有值放到一个数组中

    7.5K20

    数据库MongoDB-聚合查询

    ,别名:{聚合运算:"$运算"}}},{条件筛选:{键名:{运算条件:运算值}}}]) 常见mongo聚合操作和mysql查询做类比 求和 - $sum 查询dev集合中一共有多少个文档。...相当于SQL分组语法group by column_name中column_name部分。如果根据某字段值分组,则定义为_id:’$字段名’。...取值是‘ sum取值是‘field名’(要注意有单引号或双引号),表示该field求累加和 取总和 sum取值必须是字符串类型,有双引号。...$ db.c1.aggregate([{$group:{_id:"$name",totalAge:{$sum:"$age"}}}]); 条件筛选 - $match match和group同级操作符,需要写在条件...:"$name",avgAge:{$avg:"$age"}}}]); 统计结果返回数组 - $push 分组后按照分组数组进行合并,如果希望看到某个合并之前所有数据可以使用$push,把分组后同一组所有值放到一个数组中

    7.9K20

    给数据开发SQL面试准备路径!⛵

    LeetCode 将问题分为简单、中等和困难难度级别,SQL板块一个问题是它没有它们做很好分类,大家可以参考 ShowMeAI 在本篇内容板块分类方式。...图片对于 SQL 更详尽内容,欢迎大家查阅ShowMeAI制作速查表,快学快用:编程语言速查表 | SQL 速查表 学习计划 第1天:选择和过滤这个板块主要针对 SQL SELECT语句,掌握使用它从一个或多个表中选择字段...Products Table 第3天:分组聚合SQLGROUP BY语句根据一或多行进行分组,每组返回一行。...:The Latest Login in 2020 第4天:过滤分组SQL HAVING子句为定义组指定条件 GROUP BY....对应考题Consecutive Numbers:选择连续值Department Highest Salary:获取分区头部Exchange Seats:每行交换一次 第10天:窗口函数常用&面试常考

    4.1K144

    Mysql常用查询语句

    ; 十五查询结果不显示重复记录 SELECT DISTINCT 字段名 FROM 表名 WHERE 查询条件 注:SQL语句中DISTINCT必须与WHERE子句联合使用,否则输出信息不会有变化... BY 字段1 ASC 字段2 DESC  … 注意:查询信息进行多条件排序是为了共同限制记录输出,一般情况下,由于不是单一条件限制,所以在输出效果上有一些差别。...二十统计结果进行排序 函数SUM([ALL]字段名) 或 SUM([DISTINCT]字段名),可实现字段求和,函数中为ALL时为所有该字段所有记录求和,若为DISTINCT则为该字段所有不重复记录字段求和... BY title DESC 注:当分组语句group by排序语句order by同时出现在SQL语句中时,要将分组语句书写在排序语句前面,否则会出现错误 二十二多数据分组统计 多数据分组统计与单列数据分组统计类似...) AS sumprice  FROM tb_price GROUP BY pid ORDER BY sumprice DESC 注:group by语句后面一般为不是聚合函数数列,即不是要分组

    5.1K20

    常用SQL查询语句,值得回看不要错过,好记性不如多看看!

    十五、查询结果不显示重复记录 SELECT DISTINCT 字段名 FROM 表名 WHERE 查询条件 注:SQL语句中DISTINCT必须与WHERE子句联合使用,否则输出信息不会有变化 ,...2 DESC … 注意:查询信息进行多条件排序是为了共同限制记录输出,一般情况下,由于不是单一条件限制,所以在输出效果上有一些差别。...二十、统计结果进行排序 函数SUM([ALL]字段名) 或 SUM([DISTINCT]字段名),可实现字段求和,函数中为ALL时为所有该字段所有记录求和,若为DISTINCT则为该字段所有不重复记录字段求和...BY title DESC 注:当分组语句group by排序语句order by同时出现在SQL语句中时,要将分组语句书写在排序语句前面,否则会出现错误 二十二、多数据分组统计 多数据分组统计与单列数据分组统计类似...AS sumprice FROM tb_price GROUP BY pid ORDER BY sumprice DESC 注:group by语句后面一般为不是聚合函数数列,即不是要分组 二十三

    2.9K30

    数据分析面试必考—SQL快速入门宝典

    毫不夸张说,它是数据分析必会技能Top1,因为没有哪个初级数据分析师面试能跨过SQL技能考核这一项。...(1)聚合函数 聚合函数就是我们希望聚合方式,例如求和sum()、求平均值avg(),计数count()等等,括号里面的参数就是我们希望计算目标,聚合函数具体都有什么,ZZ这里不一一举,需要时查一下即可...因为这会导致一多,SQL逻辑混乱情况;我们应用上面说万能框架+聚合三要素给出一段聚合函数使用案例: 需求:使用聚合函数实现提取在XX学校XX年纪XX班同学中,语数外三门成绩最小值大于等于60分所有同学姓名...我们来简单理解一下: 内连接:基于连接条件表都存在数据将被提取出来显示在同一行; 全连接:基于连接条件表都存在数据将被提取出来显示在同一行,其他数据也会被提取出来,缺失部分使用空值填充; 左连接...:基于连接条件,左表数据作为标准,右表也存在数据将与左表显示在同一行,否则将使用空值填充; 右连接:基于连接条件,右表数据作为标准,左表也存在数据将与右表显示在同一行,否则将使用空值填充; 内连接和全连接是个极端

    4.5K10

    MySQL汇总排序查询

    问题 个要求: ①计算出来字段销售总额保留位小数; ②排序时,汇总不参与排序,放在最下面。...店铺名称 end 店铺名称, round(sum(交易金额),2) as 销售额求和 FROM test group by 店铺名称 with rollup order by 销售额求和 desc..., round(sum(交易金额),2) AS 销售总额 FROM test GROUP BY `店铺名称` WITH ROLLUP ORDER BY 销售总额 DESC 要求②实现一 if 相当于用条件判断添加了一隐藏...,order by先店铺进行排序再销售额排序,这样汇总行就跑最下面去了,因为汇总行索引为1,其他店铺名称索引都是0 SELECT COALESCE ( `店铺名称`, '汇总' ) AS 店铺,...DESC 要求②实现二 Sql1 union sql2 union 相当于追加查询,把个查询结果拼接再一起 (select `店铺名称` ,round(sum(交易金额),2) AS 销售总额

    2K20

    mongodb11天之屠龙宝刀(八)聚合函数与管道:sql与mongodb聚合函数对比

    ,求和等),并返回计算后数据结果。...match:用于过滤数据,只输出符合条件文档。match使用MongoDB标准查询操作。project:修改输入文档结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。...match:用于过滤数据,只输出符合条件文档。match:用于过滤数据,只输出符合条件文档。match使用MongoDB标准查询操作。project:修改输入文档结构。...match:用于过滤数据,只输出符合条件文档。match:用于过滤数据,只输出符合条件文档。match使用MongoDB标准查询操作。...2、$match实例   用于获取分数大于小于并且小于记录,然后将符合条件记录送到下一阶段match用于获取分数大于30小于并且小于100记录,然后将符合条件记录送到下一阶段group管道操作符进行处理

    1.7K10

    mongodb11天之屠龙宝刀(八)聚合函数与管道:sql与mongodb聚合函数对比

    mongodb11天之屠龙宝刀(八)聚合函数与管道:sql与mongodb聚合函数对比 MongoDB 聚合 MongoDB中聚合(aggregate)主要用于处理数据(诸如统计平均值,求和等),并返回计算后数据结果...match:用于过滤数据,只输出符合条件文档。match使用MongoDB标准查询操作。project:修改输入文档结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。...match:用于过滤数据,只输出符合条件文档。match:用于过滤数据,只输出符合条件文档。match使用MongoDB标准查询操作。project:修改输入文档结构。...match:用于过滤数据,只输出符合条件文档。match:用于过滤数据,只输出符合条件文档。match使用MongoDB标准查询操作。...2、$match实例   用于获取分数大于小于并且小于记录,然后将符合条件记录送到下一阶段match用于获取分数大于30小于并且小于100记录,然后将符合条件记录送到下一阶段group管道操作符进行处理

    1.8K50
    领券