我有一张这样的桌子:
姓名 | 家人 | 组 | 年龄 | id |
---|---|---|---|---|
测试1 | 测试1 | gr_one | 23 | 1 |
测试2 | 测试2 | gr_one | 28 | 2 |
测试3 | 测试3 | gr_two | 24 | 3 |
测试4 | 测试4 | gr_三 | 30 | 4 |
测试5 | 测试5 | gr_三 | 35 | 5 |
我需要一个查询来创建这样的结果:
组 | 动态_id |
---|---|
gr_one | 1 |
gr_two | 2 |
gr_三 | 3 |
我使用的是Mysql 5.7版本,所以似乎不支持窗口函数。
SELECT `group`, @id := @id + 1 dynamic_id
FROM ( SELECT DISTINCT `group` FROM tablename) groups
CROSS JOIN ( SELECT @id := 0 ) variable;
如果需要,您可以添加 ORDER BY 来定义行枚举顺序。