【发布时间】:2021-05-26 03:01:02
【问题描述】:
我是 SQL 新手,我想返回特定值的结果和相似值的平均值。我已经得到了平均部分的工作,但我不确定如何做具体的价值部分。
如需更多背景信息,我有一份公司碳排放清单。我想要一个基于公司行业的行业平均值(在下面完美运行),但我不知道如何添加具体的公司信息。
这是我的查询:
SELECT
year, AVG(carbon) AS AVG_carbon,
-- carbon as CompanyCarbon, <--my not working attempt
FROM
"company"."carbon" c
WHERE
LOWER(c.ticker) IN (SELECT LOWER(g4.ticker)
FROM "company"."General" g4
WHERE industry = (SELECT industry
FROM "company"."General" g3
WHERE LOWER(g3.ticker) = 'ibm.us'))
GROUP BY
c.year
ORDER BY
year ASC;
目前的结果是:
year avg_carbon
--------------------------------
1998 7909.0000000000000000
1999 19465.500000000000
2000 19478.000000000000
2001 182679.274509803922
2002 179821.156862745098
我想要的输出是:
year avg_carbon. Carbon
---------------------------------------
1998 7909.0000000000000000 343
1999 19465.500000000000 544
2000 19478.000000000000 653
2001 182679.274509803922 654
2002 179821.156862745098 644
(添加基于“IBM”碳的碳列
这是我的 Carbon 表:
ticker year carbon
-----------------------
hurn.us 2016 6282
hurn.us 2015 6549
hurn.us 2014 5897
hurn.us 2013 5300
hurn.us 2012 5340
ibm.us 2019 1496520
ibm.us 2018 1438365
根据我有限的知识,我认为我的陈述是在哪里引起问题的。现在我在一家公司工作,获取同一行业的代码/标识符列表,然后创建每年的平均值。
我试图只调用碳列,但我认为因为它正在处理代码列表,所以它没有输出我想要的结果。
我能做什么?另外,如果我犯了您在上面看到的任何其他错误,请告诉我。
【问题讨论】:
-
样本数据和期望的结果会非常丰富。
-
嗨@GordonLinoff 我已经添加了它,但它在中间。我会更新,所以它被标记为所需的输出
-
第一行结果碳是 343。第二列是 544。请解释背后的逻辑。
标签: sql postgresql