作者cutekid (可爱小孩子)
看板Database
标题Re: [SQL ] 相同SN取时间最大的? 求救.....
时间Mon Apr 17 23:22:10 2017
-- 用黄色 group by
-- 用天青色排名(递减)
-- 最後取第一名的
;with tb1 as (
select *,
row_number() over (
partition by
Customer_num,Customer_SN order by
Time desc
) as num
from table
where Customer_Name = 'A'
)
select * from tb1 where num = 1
※ 引述《necsa (necsa)》之铭言:
: 各位好!
: 这个问题我测试了很久, 并尝试google大神.
: 可是还是失败.....
: 希望有高手能给予解答.
: 我的Table栏位共大概100栏, 大概如下:
: Row_ID是流水号自动生成.
: TableName=myTable
: Row_ID, Customer_Name, Customer_num, Customer_SN, Time,..............,
: 1 A 2 1 4/3
: 2 A 2 2 4/3
: 3 A 2 3 4/4
: 4 A 3 1 4/6
: 5 A 3 2 4/6
: 6 A 3 3 4/6
: 7 A 4 1 4/1
: 8 A 4 1 4/5
: 9 A 4 2 4/1
: 10 A 4 2 4/6
: 11 A 4 3 4/1
: 12 A 4 4 4/2
: 我需要以Customer_Name, 含Row_ID约100栏的所有栏位资料都要output出来.
: 一开始我使用
: Select * from myTable where Customer_Name='A'
: order by Custer_num ASC, Customer_SN ASC.
: 可以得到我要的结果.
: 结果在多笔测试後,发现输出的资料Customer_SN有时候会重复
: (Row ID=7,8的Customer_SN都是1,Row ID=9,10的Customer_SN都是2)
: 造成後续程式撰写资料错乱.
: 请问要下什麽样的SQL查询, 当Customer_SN重复的时候只留下一笔Time比较大的资料?
: 希望查询结果如下:
: Row_ID, Customer_Name, Customer_num, Customer_SN, Time,..............,
: 1 A 2 1 4/3
: 2 A 2 2 4/3
: 3 A 2 3 4/4
: 4 A 3 1 4/6
: 5 A 3 2 4/6
: 6 A 3 3 4/6
: 8 A 4 1 4/5
: 10 A 4 2 4/6
: 11 A 4 3 4/1
: 12 A 4 4 4/2
: 恳请不吝赐教.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 111.83.104.117
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1492442533.A.F1F.html
1F:推 necsa: 谢谢kid兄的指点 04/18 00:35