我有一个问题:
SELECT id, year, avg(amount) from table1
WHERE amount IS NOT NULL
INNER JOIN table2
ON table1.id = table2.id
GROUP BY id
2 个问题:
- 这仅在我删除 Where amount is not null 时有效,并且
- 我从 SELECT 和 GROUP BY 中删除了“id”
我可以按年份分组,但它不允许我将主键“id”放在我的 select 语句中并对其进行分组。有什么建议吗?
一般来说,我想获取每个 id 每年的平均金额,然后将它与另一个具有 id 的表连接起来,但我想在返回的查询中使用 id。
最佳答案
您需要限定“id”列,因为它存在于您查询的 2 个表中。
SELECT table1.id, year, avg(amount) from table1
INNER JOIN table2
ON table1.id = table2.id
WHERE amount IS NOT NULL
GROUP BY table1.id, year
关于sql - PostgreSQL 不会使用主键进行内部连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49542601/