numer location in group by order by sql



假设我有一个表

<表类> 数量类tbody><<tr>1103b62b70b

您可以使用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

最新更新