Найти в Дзене
Java

🧩 SQL хитрый трюк

🧩 SQL хитрый трюк Хотите быстро найти дубликаты в таблице — но не просто значения, а ещё и сразу оставить только уникальные строки? Вместо сложных подзапросов используйте `ROW_NUMBER()` с PARTITION BY: WITH numbered AS ( SELECT id, email, ROW_NUMBER() OVER (PARTITION BY email ORDER BY id) AS rn FROM users ) SELECT id, email FROM numbered WHERE rn = 1; 📌 Что происходит: - PARTITION BY email группирует строки по email - ROW_NUMBER() нумерует их внутри группы - WHERE rn = 1 оставляет только первую запись (а все дубликаты убираются) 💡 Так можно элегантно чистить таблицы от дублей без лишних вложенных запросов. @javarush

🧩 SQL хитрый трюк

Хотите быстро найти дубликаты в таблице — но не просто значения, а ещё и сразу оставить только уникальные строки?

Вместо сложных подзапросов используйте `ROW_NUMBER()` с PARTITION BY:

WITH numbered AS (

SELECT

id,

email,

ROW_NUMBER() OVER (PARTITION BY email ORDER BY id) AS rn

FROM users

)

SELECT id, email

FROM numbered

WHERE rn = 1;

📌 Что происходит:

- PARTITION BY email группирует строки по email

- ROW_NUMBER() нумерует их внутри группы

- WHERE rn = 1 оставляет только первую запись (а все дубликаты убираются)

💡 Так можно элегантно чистить таблицы от дублей без лишних вложенных запросов.

@javarush