How can I order by two columns, if result is equal, consider another column?

我的梦境 提交于 2019-12-13 10:51:31

问题


I have tables called marks, total_marks, and aggregate. I want to sort the results first depending on the aggregate, but when the aggregate in the same column is equal to the next, then consider the student with the highest total. I.e., order by aggregate, but if the last aggregate is equal to the new one, how can I then give the highest rank to the one with higher total?


回答1:


With SQL you can sort by multiple columns:

SELECT * from marks ORDER BY aggregate DESC, total_marks DESC

This will sort all your rows by aggregate first (highest first) and rows with the same aggregate value will then be sorted by "total_marks" (also highest first). You can invert the sorting for the individual columns by changing the sort direction from DESC(ending) (i.e. highest first) to ASC(ending) (i.e. lowest first)



来源:https://stackoverflow.com/questions/41814895/how-can-i-order-by-two-columns-if-result-is-equal-consider-another-column

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!