假设我有一个表
<表类>
数量类 tbody><<tr>1 103 b 6 2b 70 b 表类>
您可以使用row_number():
SELECT number,class,row_number()over(partition by class order by number) Placement
FROM MyTable
如果您使用的是旧版本的数据库,不支持row_number()over()然后可以通过子查询实现:
select *,(select count(*) from rowNumberForOldDB where class=t.class and
number<t.number)+1 Placement from rowNumberForOldDB t
如果你正在使用mysql,你可以这样做:
SET @num := 0;
SELECT t.*, @num := @num + 1 AS 'row_num' FROM (
SELECT * FROM table
GROUP BY field_a
ORDER BY field_b
) t