我有一个要求,即在结果数据中识别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;
答案 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_id
和url
值的组合重复的记录分配十六进制颜色。我不完全确定您的限制或订购逻辑,但您可以轻松修改我上面写的内容以满足您的需求。