TGViewer
SQL Ready | Базы Данных SQL Ready | Базы Данных @sql_ready · 17.5K subscribers
Post #1313 2.2K
RANK vs DENSE_RANK: точное ранжирование в SQL!

При создании рейтингов или аналитических сводок часто нужно определить позиции записей по показателю — с учётом повторов. Для этого используются оконные функции RANK() и DENSE_RANK().

Создадим таблицу с продажами:
CREATE TABLE sales (
employee TEXT,
total_sales INT
);

INSERT INTO sales VALUES
('Alice', 500),
('Bob', 700),
('Charlie', 700),
('Diana', 400);


Выполним ранжирование по сумме продаж:
SELECT employee,
total_sales,
RANK() OVER (ORDER BY total_sales DESC) AS rank_pos,
DENSE_RANK() OVER (ORDER BY total_sales DESC) AS dense_rank_pos
FROM sales;


Результат:
employee | total_sales | rank_pos | dense_rank_pos
---------+--------------+----------+----------------
Bob | 700 | 1 | 1
Charlie | 700 | 1 | 1
Alice | 500 | 3 | 2
Diana | 400 | 4 | 3


🔥 Так что, RANK() пропускает позиции после повторов, а DENSE_RANK() идёт подряд, без «дыр» в нумерации.

➡️ SQL Ready | #практика
  • 👍 12
  • 🔥 10
  • ❤ 8
  • 🤝 1
More from @sql_ready
  1. Oct 9, 2026❤️ sqlite-postgres-cours — большой практический курс по базам данных! Материал ведёт от пе…
  2. Oct 8, 2026Почему UNIQUE допускает несколько NULL в PostgreSQL! Ограничение UNIQUE гарантирует уникал…
  3. Oct 7, 2026📂 Шпаргалка по паттернам распределённых систем! Например, Replication повышает доступност…
  4. Oct 6, 2026Проверяйте связи с учётом периода! В PostgreSQL 18 связь может учитывать ещё и период его…
  5. Oct 6, 2026👍 Устройство PostgreSQL — подробная документация на русском языке! Материалы посвящены не…
  6. Oct 5, 2026COUNT(*) в PostgreSQL: MVCC, visibility map и стоимость выполнения! В PostgreSQL точный CO…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →