loading..
Русский    English
04:09
листать

Функция NTILE

Задача. Распределить баллончики по 3-м группам поровну. Группы заполняются в порядке возрастания v_id.

Эту задачу решает функция ранжирования NTILE, которая появилась в  Cистема управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Язык структурированных запросов) — универсальный компьютерный язык, применяемый для создания, модификации и управления данными в реляционных базах данных. SQL Server 2008.

Эта функция возвращает номер группы, в которую попадает соответствующая строка результирующего набора.

Консоль
Выполнить
  1. SELECT *, NTILE(3) OVER(ORDER BY v_id) gr FROM utv ORDER BY v_id;

Параметром функции NTILE является число групп. Остальное вам уже известно. :-)

Если мы захотим распределить порознь баллончики каждого цвета, то, как и для других функций ранжирования, можно добавить конструкцию PARTITION BY в предложение OVER:

Консоль
Выполнить
  1. SELECT *, NTILE(3) OVER(PARTITION BY v_color ORDER BY v_id) gr
  2. FROM utv ORDER BY v_color, v_id;

Обратите внимание на группы синего цвета (B). В двух первых группах оказалось по 6 баллончиков, а в третьей только 5. В случае, когда число строк не делится нацело на число групп, функция NTILE помещает в последние группы на одну строку меньше, чем в первые.

Наконец, если аргумент функции NTILE окажется больше числа строк, то будет сформировано количество групп, равное числу строк, и в каждой группе окажется по одной строке. 


Рекомендуемые упражнения: 130

Тэги:
ALL AND AUTO_INCREMENT AVG battles CASE CAST CHAR CHARINDEX CHECK classes COALESCE CONSTRAINT Convert COUNT CROSS APPLY CTE DATEADD DATEDIFF DATENAME DATEPART DATETIME DDL DEFAULT DELETE DISTINCT DML EXCEPT EXISTS EXTRACT FOREIGN KEY FROM FULL JOIN GROUP BY Guadalcanal HAVING IDENTITY IN INFORMATION_SCHEMA INNER JOIN insert INTERSECT IS NOT NULL IS NULL ISNULL laptop LEFT LEFT OUTER JOIN LEN maker Больше тэгов
Учебник обновлялся
несколько дней назад
©SQL-EX,2008 [Развитие] [Связь] [О проекте] [Ссылки] [Team]
Перепечатка материалов сайта возможна только с разрешения автора.