在MYSQL中,我們可以使用以下代碼對每個分組取前n條數據。
SELECT * FROM ( SELECT *, ROW_NUMBER() OVER(PARTITION BY group_column ORDER BY order_column) AS row_number FROM table_name ) AS t WHERE t.row_number<= n;
上述代碼中,group_column是我們要分組的列,而order_column則是我們要按照哪一列進行排序。此外,n為我們要取的前n條數據。
這個代碼使用了ROW_NUMBER()函數,其作用是添加一個分組內的行編號。對于每個分組,我們都會按照order_column進行排序并進行編號,而t.row_number<= n這一條件則用于篩選出前n條數據。
在使用這段代碼時,我們需要更改table_name、group_column、order_column以及n等參數,以適用于我們自己的數據。同時,我們還需要注意,在處理大量數據時,這個代碼可能會比較慢,需要進行優化。