首页 > 数据库 > mysql教程 > 单个 SQL 查询如何根据多个 WHERE 子句条件检索不同的和?

单个 SQL 查询如何根据多个 WHERE 子句条件检索不同的和?

Mary-Kate Olsen
发布: 2025-01-21 12:47:10
原创
462 人浏览过

How Can a Single SQL Query Retrieve Distinct Sums Based on Multiple WHERE Clause Conditions?

使用多个WHERE子句检索不同的数据

在SQL中,可以使用WHERE子句来过滤特定的行,从而定制从表中检索数据的方式。这个问题提出了从同一张表中提取两个不同的数据集的挑战,每个数据集都满足不同的WHERE子句。

示例表“transactions”存储财务交易的记录,这些记录以其ID、账户ID、预算ID、获得的积分和交易类型为特征。任务是计算每个唯一预算ID的分配积分总和和发放积分总和。

为此,可以构造一个单个SQL查询,该查询结合了必要的WHERE子句。以下查询实现了所需的结果:

<code class="language-sql">SELECT budget_id, 
       SUM(CASE WHEN type = 'allocation' THEN points ELSE 0 END) AS allocated,
       SUM(CASE WHEN type = 'issue' THEN points ELSE 0 END) AS issued
FROM transactions
GROUP BY budget_id</code>
登录后复制

此查询使用CASE WHEN语句根据交易类型有条件地对积分求和。对于每个预算ID,查询计算与“allocation”类型关联的积分总和,并将其存储在“allocated”列中。类似地,它计算“issue”类型的积分总和,并将其存储在“issued”列中。通过按预算ID分组结果,查询生成预期的结果集,其中包含每个预算的分配积分和发放积分的单独列。

此查询演示了SQL在组合WHERE子句以从表中检索特定数据子集方面的灵活性,使其成为执行复杂数据检索任务的强大工具。

以上是单个 SQL 查询如何根据多个 WHERE 子句条件检索不同的和?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板