【问题标题】:Divide the rows in a sorted partition into a specific number of groups. [MySQL]将已排序分区中的行划分为特定数量的组。 [MySQL]
【发布时间】:2020-01-18 12:21:10
【问题描述】:

我有一张简单的桌子:

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

我想将已排序分区中的行分成特定数量的组。 我知道 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   | 
+----+--------+

谢谢

【问题讨论】:

  • 看起来你想把结果分成块。考虑在应用层这样做。
  • @PaulSpiegel 好的,那么我想如果不存在 mysql 方式,我会直接通过 php 进行操作。谢谢

标签: mysql sql divide


【解决方案1】:

您可以使用MOD() 函数来执行此操作:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-02
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-21
    相关资源
    最近更新 更多