sql獲取使用者第一次登陸的裝置號
有如下一張表
p_id d_id event_date g_p
1 2 2019-08-01 5
1 2 2019-09-01 8
2 3 2020-01-01 1
3 1 2019-03-01 9
3 5 2020-01-03 6
獲取p_id首次登陸裝置的d_id,返回結果如下:
p_id d_id
1 2
2 3
3 1
解答:首先聯想到的是row_number函式進行排序,然後獲取排名第一的資料,查詢sql如下:
第一步:對p_id欄位進行分組並排序
select p_id
,d_id
,event_date
,row_number () over (partition by p_id order by event_date) as rn
from test_01
結果:
p_id d_id event_date rn
1 2 2019-08-01 1
1 2 2019-09-01 2
2 3 2020-01-01 1
3 1 2019-03-01 1
3 5 2020-01-03 2
第二步:獲取rn為1的資料
select p_id
,d_id
from(
select p_id
,d_id
,event_date
,row_number ( ) over ( partition by p_id order by event_date ) as rn
from test_01
) awhere rn = 1;
結果:
p_id d_id
1 2
2 3
3 1
備註:建表和資料
create table test_01 (p_id int,d_id int,event_date date,g_p int);
insert into test_01 values(1,2,'2019-08-01',5);
insert into test_01 values(1,2,'2019-09-01',8);
insert into test_01 values(2,3,'2020-01-01',1);
insert into test_01 values(3,1,'2019-03-01',9);
insert into test_01 values(3,5,'2020-01-03',6);
第一次機房收費系統 登陸窗體
前言 不管是學生還是機房,敲的第乙個窗體都是登入,這兩個學習專案有很大的相同點,學生有原始碼,機房卻沒有,需要搞清楚裡邊的邏輯,問題也就迎刃而解了。下面是我畫的機房的流程圖 如下 option explicit private declare function getusername lib adv...
第一次機房收費系統之登陸窗體
3.executesql函式 和 call 呼叫 executesql他是一種自定義函式,是odbc中的乙個api函式,用來執行由sqlprepare建立的sql語句。一般只要是查詢資料表就會用到這個函式,他後面一般還加兩個引數txtsql和msgtext。今天我們就來看看這三個單詞在資料庫語言中的...
第一次登陸jenkins頁面空白解決方案
之前搭建了幾次jenkins環境都沒問題,最近換了工作,再次搭建jenkins用的是docker部署 前面都沒問題。到最後安裝完外掛程式,設定了第乙個使用者,登陸之後頁面呈現空白 解決方案 瀏覽器訪問 登陸之後將頁面下拉到底部將公升級站點的https改為http之後提交 重啟jenkins 方法一 ...