用于汇总交易数据的高效 SQL 查询
基于多个条件提取数据是数据库管理中的常见任务。 想象一个包含 account_id、budget_id、积分和交易类型(分配或发行)的“交易”表。 挑战在于有效计算每个预算 ID 的总分,按分配和问题类型分开。
简洁的SQL查询可以优雅地解决这个问题:
<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
函数中的 SUM()
语句。 CASE WHEN type = 'allocation' THEN points ELSE 0 END
表达式检查交易类型。如果是“分配”,则将对应的points
值相加;否则加0。 对于“问题”类型的交易,会重复此条件求和。
按 budget_id
对结果进行分组可提供显示每个预算的分配和发放积分的摘要。输出清晰地呈现了交易数据的综合视图,便于分析和报告。
以上是如何使用SQL按预算ID和交易类型高效求和?的详细内容。更多信息请关注PHP中文网其他相关文章!