STEP 有一个独特的 DURATION , FOLDER 有一个或多个 STEP 和 PRCEDURE 还有很多 FOLDER 。
我希望使用SQL PostgreSQL查询获得此结果,这意味着获取文件夹的最小总和持续时间,文件夹的最大总持续时间以及按 PRCEDURE <分组的所有文件夹的平均值/强>
我尝试使用子查询来解决它:
SELECT PROCEDURE.NAME, min(DUR), MAX(DUR), (SUM(DUR)/COUNT(DISTINCT ID_FOLDER))
from
(SELECT ID_FOLDER, SUM (DURATION) as DUR from FACT_TABLE
group by ID_FOLDER)
Inner join PROCEDURE on PROCEDURE.ID = FACT_TABLE.ID_PROCEDURE
GROUP By PROCEDURE.NAME ;
但它不起作用,我错过了什么吗?这个逻辑有什么问题?
答案 0 :(得分:1)
您的查询背后的想法应该有效。有一些调整:
ad_set = AdSet('6049562095738')
response=ad_set.api_get(params={AdSet.Field.redownload:True})
print(response)
注意:
SELECT p.NAME, MIN(pf.DUR), MAX(pf.DUR), AVG(pf.DUR)
FROM (SELECT f.ID_PROCEDURE, f.ID_FOLDER, SUM(f.DURATION) as DUR
FROM FACT_TABLE f
GROUP BY f.ID_PROCEDURE, f.ID_FOLDER
) pf JOIN
PROCEDURE p
ON p.ID = pf.ID_PROCEDURE
GROUP BY p.NAME;
,因此可以用于连接并且聚合是正确的。ID_PROCEDURE
而不是AVG()
与SUM()
的比率。