如何识别SQL中的重复项?

时间:2018-06-12 06:45:30

标签: sql postgresql

我有一个要求,即在结果数据中识别dupliacte值并为其添加颜色,其中Limit仅为10条记录(不检查整个表中的重复项)。 现在我的问题是如何在相应的结果集中找到副本。

我试过这种方式,但它正在检查所有表是否重复。但是,我想在极限检查中。

    SELECT count(*)
    ,safer_id
    ,CONCAT (
        (DAYS_OPEN)
        ,CASE 
            WHEN (count(*) > 1)
                THEN '~#0a9ec1'
            END
        ) AS DAYS_OPEN
FROM table_gear
WHERE SAFER_ID NOT LIKE '%WYN%'
GROUP BY safer_id
    ,url
    ,DAYS_OPEN
ORDER BY Days_open DESC limit 10 offset 0;

1 个答案:

答案 0 :(得分:0)

我会在这里使用COUNT作为分析函数:

SELECT
    safer_id,
    url,
    CASE WHEN cnt > 1 THEN '~#0a9ec1' END AS color
FROM
(
    SELECT t.*, COUNT(*) OVER (PARTITION BY safer_id, url) cnt
    FROM table_gear t
    WHERE safer_id NOT LIKE '%WYN%'
) a
ORDER BY cnt DESC
LIMIT 10;

此查询有条件地为那些与safer_idurl值的组合重复的记录分配十六进制颜色。我不完全确定您的限制或订购逻辑,但您可以轻松修改我上面写的内容以满足您的需求。