首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用SQL计算父器官统计数据

如何使用SQL计算父器官统计数据
EN

Stack Overflow用户
提问于 2016-12-22 10:43:28
回答 1查看 42关注 0票数 0

最近,我正在为一家公司查询数据以形成报告,这是SQL的新手。

我有子器官的原始数据,同时,我还需要计算它的父器官的总量。

我已经使用完整的外部连接将所有器官放在一个表中,添加了一个列"parent_organ“来表示它们之间的关系,如图所示:

我有几次使用下面的SQL查询,但失败了,有人能帮我吗?谢谢。

代码语言:javascript
复制
 SELECT ORGAN,
    SUM(CASE WHEN parent_organ LIKE '%'||ORGAN||'%' THEN 
            sales 
        ELSE 0 END) AS sales_sum  
 FROM table GROUP BY organ
EN

回答 1

Stack Overflow用户

发布于 2016-12-22 11:37:03

我假设是Postgres,使用||连接?从完整的外部联接行集:

代码语言:javascript
复制
SELECT organ, sales FROM test WHERE parent IS NOT NULL
UNION
SELECT a.organ, sum(b.sales)
FROM test a
JOIN test b ON b.parent LIKE '%'||a.organ||'%'
GROUP BY a.organ;

这显然不是很好,因为它使您的原始连接变得冗余:它运行两个查询并简单地将结果一起推送。没有完整的外连接和编辑每个查询以从原始源获取数据会更好。

不过,我不认为有更好的方法来处理您所介绍的设置。如果父子关系是一个适当的外键,那么您可能会从原始表中获得GROUPING SETS,但这不适用于您正在进行的字符串匹配。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41275030

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档