gpt4 book ai didi

sql - 连接表时如何使用 postgres group by 语句

转载 作者:行者123 更新时间:2023-11-29 13:14:21 25 4
gpt4 key购买 nike

我想在 postgres 中执行一个非常简单的查询。table1 与 tables2 和 3 具有一对多的关系。

伪查询如下

select * from table1
left join table2 ON table2.table1_id = table1.id
left join table3 ON table3.table1_id = table1.id
group by table1.id

这给了我一个错误:"列 "table2.id"必须出现在 GROUP BY 子句中或用于聚合函数中",table3.id 相同

Group by 有什么意义,如果它强制我将所有表的 id 添加到 group by 中,从而按目的击败分组(所有 id 都是唯一的并且没有分组发生)

最佳答案

group by 的目的是汇总数据。 group by 中的每个键组合在结果集中都有一行。

结果集中的列要么是 group by 中的键,要么是聚合。此规则有一个异常(exception),涉及按表上的唯一键或主键分组以及使用其他列。

select *group by 一起使用根本不是 SQL 中聚合的正确用法。

你似乎误解了这个构造的目的。有可能您真正的意思是 order by - 这将通过 order by 键对结果集进行排序,而不更改(即汇总)行数。

关于sql - 连接表时如何使用 postgres group by 语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51013041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com