我有一个SQL查询问题。所以这是一个表,它是一个大型查询的结果。
+---------+-------------+------------+
| page_id | TotalDegree | matchCount |
+---------+-------------+------------+
| 116 | 7.0000 | 4 |
| 142 | 3.0000 | 4 |
| 109 | 4.0000 | 2 |
| 119 | 4.0000 | 2 |
| 108 | 2.0000 | 2 |
| 132 | 4.0000 | 1 |
| 133 | 9.0000 | 1 |
| 146 | 9.0000 | 1 |
| 114 | 4.0000 | 1 |
| 125 | 9.0000 | 1 |
| 113 | 1.0000 | 1 |
| 127 | 9.0000 | 1 |
| 120 | 4.0000 | 1 |
| 129 | 9.0000 | 1 |
| 121 | 9.0000 | 1 |
+---------+-------------+------------+
15 rows in set (0.00 sec)
现在我想根据TotalDegree' TotalDegree'来对表格进行排序。按升序排列,以便在内部进行排序,其中匹配数量为'匹配数量。列值相同。 示例:前两行有' matchCount'值4因此,应根据“TotalDegree”' TotalDegree'在这两行之间进行排序。按升序排列。 同样,所有行都包含' matchCount'等于1应该在它们之间进行排序。 因此,排序表应如下所示。
+---------+-------------+------------+
| page_id | TotalDegree | matchCount |
+---------+-------------+------------+
| 142 | 3.0000 | 4 |
| 116 | 7.0000 | 4 |
| 108 | 2.0000 | 2 |
| 109 | 4.0000 | 2 |
| 119 | 4.0000 | 2 |
| 113 | 1.0000 | 1 |
| 132 | 4.0000 | 1 |
| 114 | 4.0000 | 1 |
| 120 | 4.0000 | 1 |
| 133 | 9.0000 | 1 |
| 146 | 9.0000 | 1 |
| 125 | 9.0000 | 1 |
| 127 | 9.0000 | 1 |
| 129 | 9.0000 | 1 |
| 121 | 9.0000 | 1 |
+---------+-------------+------------+
如何设计这样的查询?提前谢谢。
答案 0 :(得分:1)
您希望首先按降序排序MatchCount,按 然后在TotalDegree上(按升序排列)。
select * from TableName
order by MatchCount desc, TotalDegree asc;
答案 1 :(得分:0)
查看order by子句
select * from fooTable order by foo1 desc, foo2 asc
在你的情况下:
select page_id ,TotalDegree , matchCount from fooFable order by matchCount desc, TotalDegree asc