sql - PostgreSQL 不会使用主键进行内部连接

标签 sql postgresql

我有一个问题:

SELECT id, year, avg(amount) from table1
WHERE amount IS NOT NULL
INNER JOIN table2
ON table1.id = table2.id
GROUP BY id

2 个问题:

  1. 这仅在我删除 Where amount is not null 时有效,并且
  2. 我从 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/

相关文章:

mysql - 连接两个表时如何修复 FROM 不正确的语法错误?

php - 数据库模型和性能

sql - LEAST/GREATEST 列的源标签

mysql - SQL 引用完整性触发器

mysql - 在格式化 MySQL 查询以返回信息方面需要一些帮助

postgresql - Postgres 忽略插入错误并继续

c# - 如何在 C# 中返回 postgresql 函数的结果?控制台输出为空

django - 在 Django 中将 unaccent 与 SearchVector 和 SearchQuery 结合使用

postgresql - 如何让 SQLAlchemy 生成 AT TIME ZONE 语法?

sql - 如何返回连续两天或更多天/月/季度符合条件的行?