sql查詢每個人最新的2個電話號碼

2022-08-21 10:06:10 字數 985 閱讀 5736

表a中有客戶**號碼資訊與更新時間,如何查出客戶最近更新的2個**號碼,如果客戶只有乙個**號碼,則號碼1與號碼2相同

a:id

mobile

update_dt

update_tm

1111

20180101

11:11:11

2222

20180202

12:12:12

3333

20180303

13:13:13

1444

20180404

14:14:14

3555

20180505

15:15:15

1666

20180606

16:16:16

結果:id

mobile1

mobile2

1666

4442

222222

3555

333

select

id,mobile1

,coalesce(m2,m1) mobile2

from (

select

id,max(case mobile_rank when '1' then mobile else '0' end) m1

,max(case mobile_rank when '2' then mobile else '0' end) m2

from (

select

id,mobile

,row_number() over(partition by id order by update_dt desc,update_tm desc) mobile_rank

from a

) b--查詢出每個id下的**號碼按更新時間倒排的序號,可能會有同一id同一時間更新2個**號碼

group by 1--每個id取出排序最靠前的2個**號碼

) c

SQL64 找到每個人的任務

有乙個person表,主鍵是id,如下 有乙個任務 task 表如下,主鍵也是id,如下 請你找到每個人的任務情況,並且輸出出來,沒有任務的也要輸出,而且輸出結果按照person的id公升序排序,輸出情況如下 輸出 1 fh none 2 tm tm works well 2 tm tm works...

SQL69 牛客每個人最近的登入日期 四

牛客每天有很多人登入,請你統計一下牛客每個日期登入新使用者個數,有乙個登入 login 記錄表,簡況如下 第1行表示user id為2的使用者在2020 10 12使用了客戶端id為1的裝置登入了牛客網,因為是第1次登入,所以是新使用者 第4行表示user id為2的使用者在2020 10 13使用...

SQL67 牛客每個人最近的登入日期 二

牛客每天有很多人登入,請你統計一下牛客每個使用者最近登入是哪一天,用的是什麼裝置.有乙個登入 login 記錄表,簡況如下 第1行表示user id為2的使用者在2020 10 12使用了客戶端id為1的裝置登入了牛客網 第4行表示user id為3的使用者在2020 10 13使用了客戶端id為2...