Re: [SQL ] 同一群資料給同一個編號
※ 引述《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
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 4 篇):