MySQL中給每個分組求序列可以使用ROW_NUMBER()函數。這個函數會為每個分組中的行按照指定方式排序并分配一個序號。
SELECT *, ROW_NUMBER() OVER (PARTITION BY group_column ORDER BY sort_column) as row_num FROM table_name;
其中,group_column是分組依據的列,sort_column是排序依據的列。ROW_NUMBER()函數會把每個分組中的行按照sort_column排序,并為每個分組分配一個序號。
舉個例子,如果要為一個學生表中每個班級的成績按照分數從高到低排序并分配序號:
SELECT student_name, class_name, score, ROW_NUMBER() OVER (PARTITION BY class_name ORDER BY score DESC) as rank FROM student_table;
這個語句會返回每個學生的姓名、班級、分數和排名。
下一篇mysql %和_