Определить порядковый номер статьи в категории

Есть таблица content, в которой лежат статьи, разделенные по категориям, ниже пример:

id | title     | article | cat_id
19 | заголовок | статья  | 88
20 | заголовок | статья  | 31
21 | заголовок | статья  | 88
22 | заголовок | статья  | 88

Нужно для каждой статьи получить её порядковый номер в рубрике. К примеру, статья с id = 21 является второй в рубрике 88. А статья с id = 20 - первой в рубрике 31. Спасибо.


Ответы (1 шт):

Автор решения: Superproger77
-- Создаем таблицу
CREATE TABLE chapters (
  id INTEGER PRIMARY KEY,
  title VARCHAR(64) NOT NULL,
  article VARCHAR(64) NOT NULL,
  cat_id INTEGER NOT NULL
);

-- Добавляем данные в таблицу
INSERT INTO chapters VALUES
(19, 'заголовок1', 'статья1', 88),
(20, 'заголовок2', 'статья2', 31),
(21, 'заголовок3', 'статья1', 88),
(22, 'заголовок4', 'статья1', 88);

-- Выборка данных 
SELECT 
    id
    ,title
    ,article
    ,cat_id
    ,ROW_NUMBER() OVER (PARTITION BY cat_id ORDER BY title) AS idTitleInTheCategory
FROM 
    chapters;
→ Ссылка