pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

在 SQL Server 中使用 T-SQL 操作登錄注銷數(shù)據(jù)

Manipulate Login Logout data with T-SQL in SQL Server(在 SQL Server 中使用 T-SQL 操作登錄注銷數(shù)據(jù))
本文介紹了在 SQL Server 中使用 T-SQL 操作登錄注銷數(shù)據(jù)的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

問(wèn)題描述

有誰(shuí)知道用表1中的信息構(gòu)建表2的方法嗎?使用 Python 很容易接近,因?yàn)槲铱梢允褂冒葱袡z查".但是,后面有一個(gè)大數(shù)據(jù)集,所以如果我可以在SQL Server中用SQL語(yǔ)言進(jìn)行數(shù)據(jù)轉(zhuǎn)換,那就太好了.請(qǐng)注意,這不是真正的登錄和注銷數(shù)據(jù)結(jié)構(gòu)/問(wèn)題,我只想知道如何將表 2 中的數(shù)據(jù)轉(zhuǎn)換為表 1.它與我現(xiàn)在擁有的數(shù)據(jù)具有相似的結(jié)構(gòu),但用于其他用途.

Does anyone know the way of building table 2 with information in table 1? It is easy to approach with Python because I can use ‘checking by row’. However, there is a big dataset at the back so if I could conduct the data transformation with SQL language in SQL Server it will be nice. Notice that this is not a real login and logout data structure/problem, and I just want to know how to transform data in table 2 into table 1. It has the similar structure with the data I have right now but for other use.

詳情:當(dāng)用戶第一次登錄我的系統(tǒng)時(shí),我在表2中用‘LoginTime’記下時(shí)間.他可能會(huì)多次登錄我的系統(tǒng),但我只會(huì)記錄他第一次登錄的時(shí)間.當(dāng)他第一次注銷我的系統(tǒng)時(shí),我會(huì)將表 1 中的Eventtime"記錄為表 2 中的LogoutTime".如果同一用戶沒(méi)有注銷,我會(huì)將 LogoutTime 保留為NULL".

Details: When the user first logs in to my system, I write down the time with ‘LoginTime’ in table 2. He might login to my system for several times but I will only record the very first time when he login. When he first logout of my system, I will record the ‘Eventtime’ from table 1 as ‘LogoutTime’ in table 2. If the same user doesn’t logout, I will keep the LogoutTime as ‘NULL’.

表一

UserID  EventTime   Event
1   9/1/13 15:33    0
1   9/1/13 17:00    0
1   9/1/13 18:00    0
1   9/1/13 18:20    1
1   9/1/13 18:30    1
1   9/2/13 11:05    0
1   9/2/13 11:45    1
1   9/2/13 13:50    0
2   9/1/13 16:15    0
2   9/1/13 17:00    1
2   9/1/13 18:01    0
2   9/1/13 18:02    0
2   9/1/13 19:02    1
3   9/1/13 17:10    0
3   9/1/13 19:10    1
3   9/2/13 21:01    0

表 2

UserID  LoginTime   LogoutTime
1   9/1/13 15:33    9/1/13 18:20
1   9/2/13 11:05    9/2/13 11:45
1   9/2/13 13:50    NULL
2   9/1/13 16:15    9/1/13 17:00
2   9/1/13 18:02    9/1/13 19:02
3   9/1/13 17:10    9/1/13 19:10
3   9/1/13 21:01    NULL

推薦答案

您好,

-- I assume that your date and time data is in format "mm/dd/yy", which means style 1
-- For better aqurecy I am using datetime2(7) 
drop table if exists T;
create table T(UserID int, EventTime datetime2(7), [Event] bit)
GO
INSERT T(UserID,EventTime,Event)
values
(1,CONVERT(datetime2(7),'9/1/13 15:33', 1), 0),
(1,CONVERT(datetime2(7),'9/1/13 17:00', 1), 0),
(1,CONVERT(datetime2(7),'9/1/13 18:00', 1), 0),
(1,CONVERT(datetime2(7),'9/1/13 18:20', 1), 1),
(1,CONVERT(datetime2(7),'9/1/13 18:30', 1), 1),
(1,CONVERT(datetime2(7),'9/2/13 11:05', 1), 0),
(1,CONVERT(datetime2(7),'9/2/13 11:45', 1), 1),
(1,CONVERT(datetime2(7),'9/2/13 13:50', 1), 0),
(2,CONVERT(datetime2(7),'9/1/13 16:15', 1), 0),
(2,CONVERT(datetime2(7),'9/1/13 17:00', 1), 1),
(2,CONVERT(datetime2(7),'9/1/13 18:01', 1), 0),
(2,CONVERT(datetime2(7),'9/1/13 18:02', 1), 0),
(2,CONVERT(datetime2(7),'9/1/13 19:02', 1), 1),
(3,CONVERT(datetime2(7),'9/1/13 17:10', 1), 0),
(3,CONVERT(datetime2(7),'9/1/13 19:10', 1), 1),
(3,CONVERT(datetime2(7),'9/2/13 21:01', 1), 0)
GO
SELECT * FROM T
order by UserID, EventTime, Event
GO

解決方案初稿

請(qǐng)檢查這是否滿足您的需求

First draft of solution

Please check if this solve your needs

;with MyCTE as (
    SELECT UserID, EventTime, [Event]
        , [RN1-RN2] = ROW_NUMBER() over (order by UserID, EventTime, [Event]) - ROW_NUMBER() over (partition by UserID, [Event] order by UserID, EventTime, [Event])
    FROM T
),
MyCTE2 as (
    select distinct UserID, [Event] 
        , MIN(EventTime) OVER (partition by UserID,[Event], [RN1-RN2]) M
    from MyCTE
)
select UserID
  , [0] as LoginTime
  , [1] as LogoutTime
From (
    select UserID, [Event], M
        , ROW_NUMBER() OVER(partition by UserID,[Event] order by M) as GroupNum
    from MyCTE2
)x
pivot
(
  MIN(M)
  for [Event] in([0], [1])
)p
order by UserID, [LoginTime]
GO

如果此解決方案適合您,那么我們知道我滿足了您的需求,我們可以進(jìn)行下一步,即討論性能.為此,我們需要獲取您的真實(shí)標(biāo)簽;e 結(jié)構(gòu)和更多示例數(shù)據(jù)(來(lái)自您的 DDL+DML)

If this solution fits you then we know that I got your needs, and we can move to the next step which is discuss about performance. For this we will need to get your real tab;e structure ans some more sample data (DDL+DML from you)

這篇關(guān)于在 SQL Server 中使用 T-SQL 操作登錄注銷數(shù)據(jù)的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來(lái)源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問(wèn)題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請(qǐng)聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Modify Existing decimal places info(修改現(xiàn)有小數(shù)位信息)
The correlation name #39;CONVERT#39; is specified multiple times(多次指定相關(guān)名稱“CONVERT)
T-SQL left join not returning null columns(T-SQL 左連接不返回空列)
remove duplicates from comma or pipeline operator string(從逗號(hào)或管道運(yùn)算符字符串中刪除重復(fù)項(xiàng))
Change an iterative query to a relational set-based query(將迭代查詢更改為基于關(guān)系集的查詢)
concatenate a zero onto sql server select value shows 4 digits still and not 5(將零連接到 sql server 選擇值仍然顯示 4 位而不是 5)
主站蜘蛛池模板: lcd条形屏-液晶长条屏-户外广告屏-条形智能显示屏-深圳市条形智能电子有限公司 | 哈希PC1R1A,哈希CA9300,哈希SC4500-上海鑫嵩实业有限公司 | 伊卡洛斯软装首页-电动窗帘,别墅窗帘,定制窗帘,江浙沪1000+别墅窗帘案例 | 升降机-高空作业车租赁-蜘蛛车-曲臂式伸缩臂剪叉式液压升降平台-脚手架-【普雷斯特公司厂家】 | 土壤有机碳消解器-石油|表层油类分析采水器-青岛溯源环保设备有限公司 | 化工ERP软件_化工新材料ERP系统_化工新材料MES软件_MES系统-广东顺景软件科技有限公司 | 酶联免疫分析仪-多管旋涡混合仪|混合器-莱普特科学仪器(北京)有限公司 | 吉林污水处理公司,长春工业污水处理设备,净水设备-长春易洁环保科技有限公司 | 中国品牌门窗网_中国十大门窗品牌_著名门窗品牌 | 液压扳手-高品质液压扳手供应商 - 液压扳手, 液压扳手供应商, 德国进口液压拉马 | 冷凝锅炉_燃气锅炉_工业燃气锅炉改造厂家-北京科诺锅炉 | 智慧水务|智慧供排水利信息化|水厂软硬件系统-上海敢创 | 工业雾炮机_超细雾炮_远程抑尘射雾器-世纪润德环保设备 | 定做大型恒温循环水浴槽-工业用不锈钢恒温水箱-大容量低温恒温水槽-常州精达仪器 | 新密高铝耐火砖,轻质保温砖价格,浇注料厂家直销-郑州荣盛窑炉耐火材料有限公司 | 河南凯邦机械制造有限公司| 银川美容培训-美睫美甲培训-彩妆纹绣培训-新娘化妆-学化妆-宁夏倍莱妮职业技能培训学校有限公司 临时厕所租赁_玻璃钢厕所租赁_蹲式|坐式厕所出租-北京慧海通 | ISO9001认证咨询_iso9001企业认证代理机构_14001|18001|16949|50430认证-艾世欧认证网 | 丝杆升降机-不锈钢丝杆升降机-非标定制丝杆升降机厂家-山东鑫光减速机有限公司 | 利浦顿蒸汽发生器厂家-电蒸汽发生器/燃气蒸汽发生器_湖北利浦顿热能科技有限公司官网 | 亿立分板机_曲线_锯片式_走刀_在线式全自动_铣刀_在线V槽分板机-杭州亿协智能装备有限公司 | 丹佛斯变频器-Danfoss战略代理经销商-上海津信变频器有限公司 | 酒吧霸屏软件_酒吧霸屏系统,酒吧微上墙,夜场霸屏软件,酒吧点歌软件,酒吧互动游戏,酒吧大屏幕软件系统下载 | 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | EPDM密封胶条-EPDM密封垫片-EPDM生产厂家 | 铆钉机|旋铆机|东莞旋铆机厂家|鸿佰专业生产气压/油压/自动铆钉机 | 不锈钢搅拌罐_高速搅拌罐厂家-无锡市凡格德化工装备科技有限公司 | 单锥双螺旋混合机_双螺旋锥形混合机-无锡新洋设备科技有限公司 | 碎石机设备-欧版反击破-欧版颚式破碎机(站)厂家_山东奥凯诺机械 高低温试验箱-模拟高低温试验箱订制-北京普桑达仪器科技有限公司【官网】 | 东莞动力锂电池保护板_BMS智能软件保护板_锂电池主动均衡保护板-东莞市倡芯电子科技有限公司 | 高铝砖-高铝耐火球-高铝耐火砖生产厂家-价格【荣盛耐材】 | AGV无人叉车_激光叉车AGV_仓储AGV小车_AGV无人搬运车-南昌IKV机器人有限公司[官网] | 电动卫生级调节阀,电动防爆球阀,电动软密封蝶阀,气动高压球阀,气动对夹蝶阀,气动V型调节球阀-上海川沪阀门有限公司 | 广域铭岛Geega(际嘉)工业互联网平台-以数字科技引领行业跃迁 | 光谱仪_积分球_分布光度计_灯具检测生产厂家_杭州松朗光电【官网】 | 复盛空压机配件-空气压缩机-复盛空压机(华北)总代理 | 超声波清洗机_大型超声波清洗机_工业超声波清洗设备-洁盟清洗设备 | 不锈钢管件(不锈钢弯头,不锈钢三通,不锈钢大小头),不锈钢法兰「厂家」-浙江志通管阀 | 东风体检车厂家_公共卫生体检车_医院体检车_移动体检车-锦沅科贸 | 附着力促进剂-尼龙处理剂-PP处理剂-金属附着力处理剂-东莞市炅盛塑胶科技有限公司 | 定制/定做衬衫厂家/公司-衬衫订做/订制价格/费用-北京圣达信 |