2016-07-06 6 views
0

属性のグループ化に基づいてポイント列を注文するにはどうすればよいですか?例えばSQL Serverでグルーピングすることによって注文する

degreeid studentid point 
    1   1   100 
    2   1   150 
    3   1   205 
    4   1   600 
    1   2   520 
    2   2   566 
    3   2   450 
    4   2   566 
    5   2   450 
    ...... 
    1   n   m 

私はこのようにクエリ結果を表示するようにしたい:

degreeid  studentid  point 
     1   2   520 
     1   1   100 
     1   n   90  --(min value) 
     2   2   566 
     2   1   150 
     2   n   70  --(min value) 

それぞれが

ORDER point DESC 

を作り、degreeidのために、私は、カーソルを使用結果

INSERT INTO #temporary TABLE 

この一時表はデータの表示に使用されました。

私は多くのデータ、約500,000レコードがあるので、これは良い方法ですか? degreeid ASC BY表ORDER、ポイントDESCからフォーマット

SELECT *は次のBY

+0

アウトプットの例ではグループ化されていません。複数の列で注文できます。適切に – MageeWorld

+0

あなたは句で順序を両方の列を追加することができます –

答えて

1

が知っているのは難しいですが、私はあなたが2つの基準を注文したいと思います:

select degreeid ,studentid ,point 
    from table 
order by degreeid , point desc 

あなたがorder byをグループ化している場合と同じである:

select degreeid ,studentid ,sum(point) as sum_point 
    from table 
group by degreeid ,studentid 
order by degreeid , sum_point desc 
1

使用順序。クエリなし

mysql> SELECT user,duration FROM tt order by USER ASC,duration DESC; 
+--------+----------+ 
| user | duration | 
+--------+----------+ 
| user1 | 00:06:00 | 
| user1 | 00:02:00 | 
| user2 | 00:06:00 | 
| user2 | 00:01:00 | 
| user3 | 00:04:00 | 
| user55 | 00:01:00 | 
| user55 | 00:01:00 | 
+--------+----------+ 
7 rows in set (0.00 sec) 
+0

ちょうどそれらの2つの列 –

関連する問題