如何在 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 中只使用一个字段进行分组?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Django 中只显示表单中的一个字段

使用postgresql TEXT类型按字段排序时如何删除重复项?

如何在输入字段中只允许英文字母?

SQL中只对某两个字段进行分组,但我想得到其他字段而其他字段不写在GroupBy后,怎么做

如何将 bigint 字段格式化为 Postgresql 中的日期?

如何比较 Postgresql 中日期时间字段中的日期?