Postgresql Postgres,查询子查询的结果?

Postgresql Postgres,查询子查询的结果?,postgresql,Postgresql,我有员工级别的数据,我每天汇总这些数据,然后将其合并回名册以获取姓名和经理姓名等。是否有方法将这些数据与经理姓名合并,并将其合并回原始数据 到目前为止,一切正常。我在每个日期为每个系统id创建一行。我用映射表连接系统ID以获取员工ID。然后将其连接到花名册表以获取一些员工信息,包括他们的主管姓名 SELECT * FROM (SELECT DISTINCT (system_id) FROM schema.fact_table WHERE report_date >

我有员工级别的数据,我每天汇总这些数据,然后将其合并回名册以获取姓名和经理姓名等。是否有方法将这些数据与经理姓名合并,并将其合并回原始数据

到目前为止,一切正常。我在每个日期为每个系统id创建一行。我用映射表连接系统ID以获取员工ID。然后将其连接到花名册表以获取一些员工信息,包括他们的主管姓名

SELECT *
FROM 
    (SELECT DISTINCT (system_id)
    FROM schema.fact_table
    WHERE report_date >= '2017-09-01') AS t1
CROSS JOIN 
    (SELECT report_date :: DATE
    FROM generate_series('2017-09-01' :: DATE , '2017-09-10' :: DATE , INTERVAL '1 day') report_date ) AS t2
LEFT JOIN 
    (SELECT *
    FROM schema.dimension_table_1
    WHERE system_id IS NOT NULL
            AND expiration_date > '2017-09-01') AS t3
    ON t1.system_id = t3.system_id
        AND t2.report_date >= t3.effective_date
        AND t2.report_date <= t3.expiration_date
LEFT JOIN 
    (SELECT *
    FROM schema.dimension_table_2
    WHERE expiration_date > '2017-09-01') AS t4
    ON t3.employee_id = t4.employee_id
        AND report_date >= t4.effective_date
        AND report_date <= t4.expiration_date
LEFT JOIN 
    (SELECT report_date AS report_date,
         system_id AS system_id,
         sum(stuff_count) AS stuff_count,

    FROM schema.fact_table_1
    WHERE report_date >= '2017-09-01'
    GROUP BY  report_date, avaya_id, source_database ) AS t5
    ON t2.report_date = t5.report_date
        AND t1.system_id = t5.system_id
我怎样才能做到这一点?我需要以某种方式为整个上半部分每日聚合的员工级别数据提供一个别名,并使用主管名称,然后在日期+主管id列中聚合该别名。我就是不能让它正常工作

我需要每天给整个上段加个别名 使用主管名称聚合的员工级数据

使用它可以通过引用给定给查询的别名来重用查询,例如

WITH myCTE as (
....
)
select *
from myCTE

可以根据需要在CTE中或之后执行聚合。

您的上一个子查询别名是t7,但您使用的是没有别名的主管\u员工\u id?你需要在T7.supervisor\u employee\u id=SOMETHING.supervisor\u employee\u id抱歉,是的。我试图添加别名,但失败了。那只是因为我复制和粘贴了一些东西,却忘了删除它。忽略最后一部分中我的别名。嗯,我不能忽略这个。如果您输入了正确的别名,查询应该可以工作。但是你的问题太长了,我不能为你做所有的调试。向我们显示数据库模式、示例数据、当前和预期输出。请阅读,这里是学习如何提高问题质量和获得更好答案的好地方。不相关,但是:distinct不是一个函数。DISTINCT system_id与DISTINCT system_idI最初将我的整个第一部分包装在SELECT*FROM中完全相同。。。作为t6。因此,顶部部分是t6,底部查询标记为t7。我一直得到一个错误,t6不存在,所以我不确定这是可能的。我不知道这一点,但它使它变得更容易。我不知道我以前的问题是什么。。也许是括号或其他小东西。但这一切都清理干净了,我是一个球迷。谢谢
WITH myCTE as (
....
)
select *
from myCTE