2

私は人々のテーブルを持っています、それぞれが訪問の数優先順位を持っています:

ID | NAME          |  VISITS | PRIORITY
---------------------------------------
 1 |     John      |    1    |   0
 2 |     Joe       |    2    |   1
 3 |     Peter     |    1    |   1
 4 |     Sara      |    0    |   2  
 5 |     Phillip   |    5    |   0
 6 |     Bob       |    3    |   1
 7 |     Andrew    |    4    |   2

特定の許可された優先順位のみがあります:(0,1,2)

訪問数(最も低いものから順に)で、対応する優先度グループ内のユーザーを表示するクエリを作成するにはどうすればよいですか?

したがって、結果は次のようになります。

ID | NAME          |  VISITS | PRIORITY
---------------------------------------
 1 |     John      |    1    |   0
 2 |     Philip    |    5    |   0
 3 |     Peter     |    1    |   1
 4 |     Joe       |    2    |   1  
 5 |     Bob       |    3    |   1
 6 |     Sara      |    0    |   2
 7 |     Andrew    |    4    |   2

GROUP BY句を使用する必要があると思いますが、使用方法がわかりません。

4

3 に答える 3

8

試してみましたかORDER BY

select id, name, visits, priority
from people
order by priority, visits

SQL FiddlewithDemoを参照してください

于 2012-10-17T14:43:17.227 に答える
4

ORDERBYと2つの列を使用します。

SELECT * FROM people ORDER BY priority, visits;
于 2012-10-17T14:43:20.937 に答える
2

これを試して:

Select * from table order by priority, visits

注:ID列には結果の順序がありません。これは、すべての訪問にすでにIDが含まれているため、結果は次のようになります。

ID | NAME          |  VISITS | PRIORITY
---------------------------------------
 1 |     John      |    1    |   0
 5 |     Philip    |    5    |   0
 3 |     Peter     |    1    |   1
 2 |     Joe       |    2    |   1  
 6 |     Bob       |    3    |   1
 4 |     Sara      |    0    |   2
 7 |     Andrew    |    4    |   2
于 2012-10-17T14:46:43.210 に答える