2016-07-06 123 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) 

我使用遊標,每個degreeid使

ORDER point DESC 

和結果

INSERT INTO #temporary TABLE 

此臨時表用於顯示數據。

這是一個好方法,因爲我有很多數據,大概有500,000條記錄?

+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

使用順序由以下格式

SELECT * FROM表ORDER BY degreeid ASC,DESC點;

例如

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

按順序添加這兩列 –