亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

緊急求助SQL 面試題

緊急求助SQL 面試題

ABOUTYOU 2018-08-17 10:09:36
有張表 type  value  time2       5        12:424       -42     13:192        2        14:482        7       12:543        16     13:193        20     15:01 需要按照type排序,返回同一個type的,最近時間和次近時間的兩個value的差值比如 type為2的,最近時間是 14:48,value為2  ,接下來時間是 12:54,value為7所以差值為 2-7 = -5 所以結果是 type  value2      -53       4 求高手幫忙寫SQL,小弟怎么都寫不出來。。。。
查看完整描述

1 回答

?
冉冉說

TA貢獻1877條經驗 獲得超1個贊

create table test5
(
[type] int not null,
[value] int not null,
[time] time
)

go

INSERT INTO test5 VALUES(2,5,'2:42:00')
INSERT INTO test5 VALUES(4,-42,'3:42:00')
INSERT INTO test5 VALUES(2,2,'4:42:00')
INSERT INTO test5 VALUES(2,7,'2:52:00')
INSERT INTO test5 VALUES(3,16,'2:42:00')
INSERT INTO test5 VALUES(3,20,'3:42:00')

go


with v1 as (
select * from (
select top 100 *, row_number() over ( partition by [type] order by time) as [rank] from test5
) V1 where V1.rank=1)
,v2 as (
select * from (
select top 100 *, row_number() over ( partition by [type] order by time) as [rank] from test5
) V1 where V1.rank=2)
select v1.[type],v1.[value]-v2.[value] from v1 left join v2 on v1.[type]=v2.[type]


查看完整回答
反對 回復 2018-09-05
  • 1 回答
  • 0 關注
  • 621 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號