sql - GROUP BY 本身就意味着 DISTINCT 吗?

标签 sql postgresql

<分区>

我相信 SQL 中的 GROUP BY 会使 DISTINCT 变得不必要,因为如果您按列分组,那么结果中的每个值将只有一个,但我想确保我正确理解关键字。您是否不需要这样做:

SELECT DISTINCT a_uuid
FROM table
GROUP BY a_uuid
HAVING NOT bool_or(type = 'Purchase')

因为您可以完全放弃 DISTINCT?

最佳答案

您不需要在此查询中使用 distinct。通常,您不需要 distinctgroup by。实际上有一些查询同时使用 distinctgroup by,但这种情况很少见。

您在此查询中需要group by,因为您在having 子句中使用聚合函数。所以,使用:

SELECT a_uuid
FROM table
GROUP BY a_uuid
HAVING NOT bool_or(type = 'Purchase')

关于sql - GROUP BY 本身就意味着 DISTINCT 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27529628/

相关文章:

java - 本地 postgres 工具的事务类型?

mysql - 选择日期时间和现在之间经过的毫秒数(3)

mysql根据另一个表中的字段对列进行排序

c# - 如何连接到由模式分隔的 postgresql 数据库?

ruby-on-rails - Rails schema.rb 不包含新的自定义 Postgres 函数

ruby-on-rails - capistrano 回滚会撤消迁移吗?

postgresql - 更新插入更改行键(串行)?

php - 如何在 PHP 和 MySQL 中合并 2 个表?

sql - 在 postgres 中打印运行时消息

mysql - SQL查询问题: MySQL