基于PostgreSQL的Metabase只读SQL查询:合并库存重复数据
PostgreSQL库存统计只读SQL方案
处理逻辑
针对库存表中同一Shipment+Product下存在Origin为空/非空重复行的情况,实现以下目标:
- 合并同一组合下所有行的
Quantity求和 - 排除仅存在
Origin为空的孤立行
最终SQL语句
SELECT shipment, product, -- 提取该组合下的有效Origin(假设同一组合内非空Origin唯一) MAX(origin) AS origin, SUM(quantity) AS total_quantity FROM inventory_table GROUP BY shipment, product HAVING -- 过滤掉只有空Origin的分组 COUNT(origin) > 0;
关键细节说明
MAX(origin):利用聚合函数特性自动忽略空值,取出该组合下的非空Origin值。如果同一组合下存在多个不同的非空Origin,需要先确认业务规则(比如是否需要按Origin再分组)后调整语句。COUNT(origin) > 0:COUNT(origin)仅统计非空值的数量,这个条件确保只保留至少有一条有效Origin记录的分组,直接排除无有效Origin的孤立行。- 语句为只读查询,不会修改原表数据,符合Metabase只读权限要求。
内容的提问来源于stack exchange,提问作者Elmauro
相关产品推荐
相关产品推荐

