Разделите строки в отсортированном разделе на указанное количество групп c. [MySQL] - PullRequest
0 голосов
/ 18 января 2020

У меня есть простая таблица:

+----+--------+
| id |  name  |
+----+--------+
|  1 | john   |
|  2 | jane   |
|  3 | philip |
|  4 | robert |
|  5 | clara  |
|  6 | mark   |
|  7 | alex   |
+----+--------+

Я хотел бы разделить строки в отсортированном разделе на указанное число c групп. Я знаю функцию NTILE, но мой сервер не поддерживает MySQL 8.

Это желаемый результат:

 GROUP 1  

+----+--------+
| id |  name  |
+----+--------+
|  1 | john   | 
|  4 | robert | 
|  7 | alex   | 
+----+--------+

 GROUP 2

+----+--------+
| id |  name  |
+----+--------+
|  2 | jane   | 
|  5 | clara  | 
+----+--------+

GROUP 3

+----+--------+
| id |  name  |
+----+--------+
|  3 | philip | 
|  6 | mark   | 
+----+--------+

спасибо

1 Ответ

1 голос
/ 18 января 2020

Вы можете использовать функцию MOD(), чтобы сделать это:

select *, mod(id, 3) as group_id from t
...