Re: [SQL ] 同一群資料給同一個編號

看板Database作者 (減肥中請勿餵食)時間16年前 (2009/03/27 18:37), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《fishfish0000 (小魚仔~)》之銘言: : [MS-SQL]... : 如題,想請教該怎麼作? : 我已經先下下列的指令... : select 日期 ,count (日期) as 次數 FROM [TableName] : GROUP BY 日期 : ORDER BY 日期 : 產生的結果摘要如下: : 日期 次數 : -------------------------------------------------- ----------- : 20070730 20 : 20070731 18 : 20070801 20 : 20070802 22 : 20070803 20 : 20070806 14 : 20070807 14 : 20070808 16 : 想在TableName中,多加一個欄位。屬於同一天的,多一個編號 : ex: : 編號   日期   things : 1 20070730 a : 1 20070730 b : 2 20070731 c : 爬文過,好像都是說自動編號的。 : 請高手們指導…感謝 傳統上的做法得去數日期小於自己的有幾筆 這個例子得用三、四層subquery SQL 2005的話 有rank()及row_number()函數可用 rank()的用法: select rank() over (order by 日期), 日期, things from [TableName] 不過這樣會變成 編號 日期 things 1 20070730 a 1 20070730 b 3 20070731 c row_number()的用法: select B.編號, A.日期, A.things from [TableName] A inner join ( select row_number() over (order by 日期) 編號, 日期 from ( select distinct 日期 from [TableName] ) C ) 可以成功做出 編號 日期 things 1 20070730 a 1 20070730 b 2 20070731 c 我覺得若沒有很在乎編號跳號 還是用rank()就好了,查詢式簡單很多 如果rank()跟row_number()都不能用 那就稍稍地麻煩了 可參考原Po下方的推文文章來寫 很適合拿來做SQL的考題orz -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 59.120.54.145
文章代碼(AID): #19pAnLrr (Database)
文章代碼(AID): #19pAnLrr (Database)