【发布时间】:2012-05-11 00:41:41
【问题描述】:
我需要在表中查找重复项。在 MySQL 中我只写:
SELECT *,count(id) count FROM `MY_TABLE`
GROUP BY SOME_COLUMN ORDER BY count DESC
这个查询很好:
- 根据 SOME_COLUMN 查找重复项,并给出其重复次数。
- 按重复的 desc 顺序排序,这对于快速扫描主要副本很有用。
- 为所有剩余的列选择一个随机值,让我了解这些列中的值。
Postgres 中的类似查询提示我一个错误:
列“MY_TABLE.SOME_COLUMN”必须出现在 GROUP BY 子句中,否则 在聚合函数中使用
这个查询的 Postgres 等价物是什么?
PS:我知道 MySQL 的行为偏离了 SQL 标准。
【问题讨论】:
-
请添加拒绝投票的理由。如果这是一个糟糕的问题,我会亲自投票删除。
-
这不是一个坏问题。我删除了煽动性的部分并进行了一些编辑。
-
我不知道为什么这里的一些人在他们真的不理解主题的情况下仍然对有趣的问题或答案投反对票......
标签: mysql sql postgresql group-by aggregate-functions