在psql中选择重复列,然后按行id排序

时间:2018-01-04 19:40:18

标签: sql postgresql duplicates

我试过在网上搜索,虽然有很多答案可以找到重复内容,但我还是偶然发现了一个允许我在列中找到所有重复内容的内容(即同一个名称' ;多次出现)然后只选择最低行id(这将是输入的第一个重复名称)。

所以表格的描述(从文件中插入): create table customer(id int,name varchar,)

id| name

1 | Darren
2 | Mark
3 | Julie
4 | Mark
5 | Julie

查询:

CREATE VIEW AS
SELECT COUNT(name), name
FROM customer
GROUP BY name
HAVING COUNT(name) > 1

结果(订单永远无法保证,我希望Mark总是先来,因为他的ID最低): 朱丽叶 标记

现在的问题是,如果我选择id,我必须将它包含在组中。这样做意味着没有重复的列被选中,因为任何id都是唯一的。并且没有选择id我不能通过desc。

我希望我很清楚,如果不是,我可以重新说出来或提供更多信息。

1 个答案:

答案 0 :(得分:1)

请试试这个?嵌套查询。基本上调用SELECT / GROUP。在外面,我们获取所选信息并对其进行排序。

CREATE VIEW AS
SELECT CNT_NAME, NAME
FROM
(
SELECT COUNT(name) CNT_NAME, name, min(id) min_id
FROM customer
GROUP BY name
HAVING COUNT(name) > 1
) AS alias
ORDER BY MIN_ID