如何按两列排序,如果结果相同,请考虑另一列?

时间:2017-01-23 20:21:24

标签: mysql sql-order-by

我有名为marks,total_marks和aggregate的表。我想首先根据聚合对结果进行排序,但是当同一列中的聚合等于下一个时,则考虑总数最高的学生。即,按聚合顺序,但如果最后一个聚合等于新聚合,那么我怎样才能将最高等级赋予总数更高的那个?

1 个答案:

答案 0 :(得分:0)

使用SQL,您可以按多列排序:

SELECT * from marks ORDER BY aggregate DESC, total_marks DESC

这将首先按聚合排序所有行(最高的第一个),然后按" total_marks"排序具有相同聚合值的行。 (也是最高的)。您可以通过将排序方向从DESC(结束)(即最高的第一个)更改为ASC(结束)(即最低的第一个)来反转各列的排序