PostgreSQL group by 获取唯一值并添加列

我想为数据库中的所有城市选择一个字段的总和,并将城市几何图形添加到其中。我使用分组依据将城市作为总和的唯一值。这可以通过以下代码实现:

SELECT SUM(tablea.sum), tableb.city
    FROM tablea, tableb
    WHERE tablea.id = tableb.id
    GROUP     BY

为了添加城市几何图形,我尝试了以下操作,但没有给出预期的结果。城市价值不再是独一无二的。

SELECT SUM(tablea.sum), tableb.city, tableb.geom
    FROM tablea, tableb
    WHERE tablea.id = tableb.id
    GROUP     BY

我怎样才能添加城市几何形状并仍然具有独特的城市价值?

我正在使用 PostgreSQL

PostgreSQL
SQL
2023-05-11 13:57:29
浏览
收藏 0
回答 2
待解决
回答 2
按赞同
/
按时间
别喝这么多

也许你的问题更适合使用INNER JOIN。 例子:

SELECT SUM(tablea.sum), tableb.city, tableb.geom
    FROM tablea     INNER     JOIN tableb 
    ON tablea.id = tableb.id
分享
微博
QQ
微信
回复
2023-05-11 16:06:36
pgdba

​FROM 子句​

join_type

  • ​[ INNER ] JOIN​
  • ​LEFT [ OUTER ] JOIN​
  • ​RIGHT [ OUTER ] JOIN​
  • ​FULL [ OUTER ] JOIN​
  • ​CROSS JOIN​

之一。 对于​​INNER​​​和​​OUTER​​​连接类型,必须指定 一个连接条件,即 ​​NATURAL​​​、​​ON join_condition​​或者 ​​USING (join_column [, ...])​​​ 之一(只能有一种)。其含义见下文。对于 ​​CROSS JOIN​​,上述子句不能出现。

一个​​JOIN​​​子句联合两个​​FROM​​​项( 为了方便我们称之为“表”,尽管实际上它们可以是任何类型 的​​FROM​​​项)。如有必要可以使用圆括号确定嵌套的顺序。 在没有圆括号时,​​JOIN​​​会从左至右嵌套。在任何情 况下,​​JOIN​​​的联合比分隔​​FROM​​-列表 项的逗号更强。

​CROSS JOIN​​​和​​INNER JOIN​​​ 会产生简单的笛卡尔积,也就是与在​​FROM​​​的顶层列出两个 表得到的结果相同,但是要用连接条件(如果有)约束该结果。 ​​CROSS JOIN​​​与​​INNER JOIN ON (TRUE)​​​等效,也就是说条件不会移除任何行。这些连接类型只是一种 记号上的方便,因为没有什么是你用纯粹的​​FROM​​​和 ​​WHERE​​能做而它们不能做的。

​LEFT OUTER JOIN​​​返回被限制过的笛卡尔积 中的所有行(即所有通过了其连接条件的组合行),外加左手表中 没有相应的通过了连接条件的右手行的每一行的拷贝。通过在右手 列中插入空值,这种左手行会被扩展为连接表的完整行。注意在决 定哪些行匹配时,只考虑​​JOIN​​子句自身的条件。之后 才应用外条件。

相反,​​RIGHT OUTER JOIN​​​返回所有连接行,外加每 一个没有匹配上的右手行(在左端用空值扩展)。这只是为了记号 上的方便,因为你可以通过交换左右表把它转换成一个​​LEFT OUTER JOIN​​。

​FULL OUTER JOIN​​返回所有连接行,外加每 一个没有匹配上的左手行(在右端用空值扩展),再外加每一个没有 匹配上的右手行(在左端用空值扩展)。

分享
微博
QQ
微信
回复
2023-05-27 14:20:08
相关问题
text内容如何实时获取添加修改?
1272浏览 • 1回复 待解决
富鸿蒙开发如何获取设备唯一Id?
12283浏览 • 1回复 待解决
sql 如何约束多中所有均不同?
1213浏览 • 1回复 待解决
Preferences获取不到
7019浏览 • 2回复 待解决
组件如何动态设置全局唯一ID?
5157浏览 • 1回复 待解决
怎么获取select选中的
5546浏览 • 1回复 待解决
如何优雅生成非递增的唯一的数字uid?
1485浏览 • 2回复 待解决
JS 获取控件位置动态赋值的问题
1946浏览 • 1回复 待解决
如何获取应用签名证书的hash
207浏览 • 1回复 待解决
mysql group by 字段多,怎么优化?
997浏览 • 1回复 待解决
如何调用测试个wifi接口?
4166浏览 • 1回复 待解决