如何在 PostgreSQL 中只使用一个字段进行分组?
Posted
技术标签:
【中文标题】如何在 PostgreSQL 中只使用一个字段进行分组?【英文标题】:How to make a Group By in PostgreSQL with only one field? 【发布时间】:2021-11-15 00:51:36 【问题描述】:SELECT table1.field1, table2.field2
FROM table1
LEFT JOIN table2 ON table1.field1, table2.field1
GROUP BY table1.field1
mysql:✅ 好的! ????
PostgreSQL: ❌ 你必须把所有的 Select 字段放在 Group By 中! ????
如何在 PostgreSQL 中创建一个只有一个字段的 Group By?
【问题讨论】:
你使用的是哪个聚合函数? 如果你想使用单个分组,请使用 MAX(table2.field2) 或 MIN(table2.field2) MySQL 不是“没问题”的。 MySQL 不会抛出错误,而是选择返回随机结果。 【参考方案1】:如果 table2.field2 值是字母数字,则使用 MIN/MAX 或 table2.field2 是数字,然后根据需要使用任何聚合函数,以避免在 GROUP BY 子句中使用 table2.field2 列。
SELECT table1.field1
, MAX(table2.field2) field2
FROM table1
LEFT JOIN table2
ON table1.field1 = table2.field1
GROUP BY table1.field1
【讨论】:
以上是关于如何在 PostgreSQL 中只使用一个字段进行分组?的主要内容,如果未能解决你的问题,请参考以下文章
使用postgresql TEXT类型按字段排序时如何删除重复项?
SQL中只对某两个字段进行分组,但我想得到其他字段而其他字段不写在GroupBy后,怎么做