![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 阿弦 ![]()
![]() |
我目前有一個SQL語法想問各位 目前我的table的資料長這樣 欄位的話 Name是學生的姓名 Subject是科目名 Score是分數 Latest Update Time是上次更新分數的時間 現在我想要排序變成這樣 排序以Latest Update Time這個欄位為主 像是學生C的國文是最近期被更改的 學生C的所有科目就往上排序 而每個學生的科目也要再依照Latest Update Time再排序一次 像是學生C的英文和數學就對調了 不曉得有沒有做到這種分組排序的SQL語法? 希望各位高手們能夠給予指點 感謝了(鞠躬)Orz
搜尋相關Tags的文章:
[ SQL ] , [ 排序 ] , [ 分組 ] , [ order by ] , [ group by ] , [ MS SQL ] ,
本篇文章發表於2016-05-13 11:32 |
1樓
作者回應
阿弦 ![]() |
嗚嗚~圖片無法上傳上來
用以下的文字來顯示表格好了 原本的表格: Name|Subject|Score|Latest Update Time --------------------------------------- 學生A|國文|60|2016/5/12 11:41 學生A|英文|70|2016/5/13 00:52 學生A|數學|80|2016/5/10 10:05 學生B|國文|40|2016/5/11 11:41 學生B|英文|55|2016/5/14 08:41 學生B|數學|80|2016/5/9 10:21 學生C|國文|85|2016/5/15 11:51 學生C|英文|75|2016/5/11 11:35 學生C|數學|65|2016/5/14 09:41 想要排序後的表格: Name|Subject|Score|Latest Update Time ------------------------------------------------ 學生C|國文|85|2016/5/15 11:51 學生C|數學|65|2016/5/14 09:41 學生C|英文|75|2016/5/11 11:35 學生B|英文|55|2016/5/14 08:41 學生B|國文|40|2016/5/11 11:41 學生B|數學|80|2016/5/9 10:21 學生A|英文|70|2016/5/13 00:52 學生A|國文|60|2016/5/12 11:41 學生A|數學|80|2016/5/10 10:05
本篇文章回覆於2016-05-13 11:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
阿弦 ![]() |
以下是範例的語法
CREATE TABLE MyTable ([UserName] nvarchar(50), [Subject] nvarchar(50), [Score] int, [Latest_Update_Time] datetime) ; INSERT INTO MyTable ([UserName], [Subject], [Score], [Latest_Update_Time]) VALUES (N'學生A', N'國文',60, '2016/5/12 11:41:14'), (N'學生A', N'英文',70, '2016/5/13 12:52:14'), (N'學生A', N'數學',80, '2016/5/10 10:05:10'), (N'學生B', N'國文',40, '2016/5/11 11:41:14'), (N'學生B', N'英文',55, '2016/5/14 08:41:14'), (N'學生B', N'數學',80, '2016/5/9 10:21:14'), (N'學生C', N'國文',85, '2016/5/15 11:51:14'), (N'學生C', N'英文',75, '2016/5/11 11:35:14'), (N'學生C', N'數學',65, '2016/5/14 09:41:14') ;
本篇文章回覆於2016-05-13 13:57
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
作者回應
阿弦 ![]() |
弄出來了
SELECT UserName ,Subject ,Score ,Latest_Update_Time ,MAX(Latest_Update_Time) OVER ( PARTITION BY UserName ORDER BY Latest_Update_Time DESC ) 'MAX_UPDATE_TIME' FROM MYTABLE ORDER BY [MAX_UPDATE_TIME] DESC
本篇文章回覆於2016-05-13 17:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓
作者回應
阿弦 ![]() |
自推一下,還有其他人有其他寫法嗎?
我會把點數給他喔~~~
本篇文章回覆於2016-08-10 11:29
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓 |
select * from MyTable order by [UserName] desc ,[Latest_Update_Time] desc 好像這樣就可以嚕
本篇文章回覆於2016-08-10 15:41
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |