sql速度优化多条合并为一条语句

在 SQL 中,结合 CASE 和 SUM 可以实现根据特定条件进行分组求和。在 ThinkPHP 中也可以使用类似的方式进行数据库查询操作。

例如,假设有一个销售数据表,包含字段 product_id (产品 ID)、 quantity (销售数量)和 category (产品类别)。现在要根据产品类别计算不同类别产品的销售总量,并对特定类别进行特殊处理。

$result = Db::table('sales_table')

->field('category,

SUM(CASE

WHEN category = "A" THEN quantity

ELSE 0

END) as categoryAQuantitySum,

SUM(CASE

WHEN category = "B" THEN quantity

ELSE 0

END) as categoryBQuantitySum')

->group('category')

->select();

在上述代码中,通过 CASE 语句对不同的产品类别进行判断,如果是特定类别(如"A"或"B"),则将对应的销售数量累加到总和中,否则为 0。最后使用 SUM 函数对满足条件的销售数量进行求和,并通过 group('category') 按照产品类别进行分组。

这样就可以得到不同产品类别的特定求和结果,方便进行数据分析和统计。

相关推荐
CJi0NG16 分钟前
【自用】MySQL-多表查询
数据库·mysql
雨落在了我的手上22 分钟前
MySQL数据库基础(12):事务
数据库·mysql
D姐聊门店25 分钟前
门店收银系统断网兜底怎么设计:本地账本、离线续传与日终对账的工程实现
数据库·saas
用户86629784800843 分钟前
抓包看 KingbaseES 内部协议?官方给了个现成工具
数据库
wefg11 小时前
【Redis】安装与启动
数据库·redis·缓存
大圣编蚕1 小时前
常见的 Redis 面试题(高频整理)
数据库·redis·缓存
派小心.2 小时前
网站统计采样数据的误差核对
大数据·服务器·前端·数据库·人工智能·小程序·数据分析
龙腾AI白云2 小时前
数字孪生、具身智能、世界模型三者交叉
数据库·人工智能·机器学习·flask·pygame
SelectDB技术团队2 小时前
Apache Doris 基于 Lance 的向量检索深度解析
数据库·数据仓库·数据分析·湖仓一体·apache doris·lakehouse·多模湖仓
这个DBA有点耶3 小时前
从INDEX到JOIN_ORDER:MySQL 8.0 Hint语法体系与五类实战场景
数据库·mysql·架构