DB2 ROW_NUMBER – це функція, надана IBM для генерування послідовного номера, який може починатися з 1 і безперервно показувати повторюване значення у вказаній назві стовпця. Аналітична обробка (OLAP) і сама є віконною функцією.
Це можна зробити за допомогою присвоєння функції ROW_NUMBER() кожному рядку даних, а потім використання пропозиції Partition для групування даних за певним значенням. Потім N-те найвище значення можна визначити за допомогою пропозиції ORDER BY для сортування даних у порядку спадання та визначення значення N-го рядка.
Щоб додати стовпець з номером рядка перед кожним рядком, додати стовпець із функцією ROW_NUMBER, у цьому випадку під назвою Row# . Ви повинні перемістити речення ORDER BY до речення OVER. SELECT ROW_NUMBER() OVER(ORDER BY name ASC) AS Row#, name, recovery_model_desc FROM sys.databases WHERE database_id < 5; Ось набір результатів.
Стовпець ROWID може бути визначений користувачем або неявно згенерований Db2. Ви можете використовуйте інструкцію CREATE TABLE або інструкцію ALTER TABLE, щоб визначити стовпець ROWID. Якщо ви визначаєте стовпець LOB у таблиці, а таблиця не має стовпця ROWID, Db2 неявно генерує стовпець ROWID.
Аргумент COUNT(*) це набір рядків. Результатом є кількість рядків у наборі. Будь-який рядок, який містить лише нульові значення, включається до підрахунку. Аргумент COUNT(вираз) або COUNT(ALL вираз) є набором значень.