sql - SQL查询:我需要选择所有匹配字符串的条目和日志中每个日期时间的最后一行条目
问题描述
我需要在日志中找到所有登录/注销/会话过期条目以及同一日志中每个日期的最后一个条目。
我的数据片段如下所示:
"DateTime" "Action"
"12/27/2018 12:04 PM" "Logged Out. Logged in for 240 minutes"
"12/27/2018 12:10 PM" "Login Successful"
"12/27/2018 12:10 PM" "Patient Search"
"12/27/2018 12:41 PM" "Logged Out. Logged in for 89.8 minutes"
"12/27/2018 3:06 PM" "Login Successful"
"12/27/2018 3:30 PM" "Viewed All"
我可以使用下面的代码找到“登录/注销/会话过期”条目;但我也在努力为每个日期选择最后一行。IE。输出应该是:
"DateTime" "Action"
"12/27/2018 12:04 PM" "Logged Out. Logged in for 240 minutes"
"12/27/2018 12:10 PM" "Login Successful"
"12/27/2018 12:41 PM" "Logged Out. Logged in for 89.8 minutes"
"12/27/2018 3:06 PM" "Login Successful"
"12/27/2018 3:30 PM" "Viewed All"
SELECT *
FROM LOGS WITH (NOLOCK)
WHERE [Username] = '",username,"'
AND (Action LIKE 'Login S%' OR Action LIKE 'Logged%' OR
Action LIKE '%session%')
AND [DateTime] BETWEEN '",From_date,"' AND '",To_date,"'
解决方案
您的查询意味着您的数据中有第三个字段(用户名)。如果您正在寻找用户名的“最旧”条目,我会探索使用带有“GROUP BY”用户名的子查询和日期时间的聚合函数 MAX,然后您可以将子查询值加入您的初始查询。
推荐阅读
- informatica - Informatica 工作流场景
- python - 遍历具有不同元素的列表
- python - 代码是什么意思?self.plusOne(digits[:-1]) digits.extend([0])
- angular - 在不丢失当前 Observable 数据的情况下跳转到路由
- java - Java,设置字符串数组等于双精度数组
- r - RShiny - 警告:错误:美学必须是长度 1 或与数据相同 (48):y
- algorithm - Unity 销毁对象及其对象列表
- javascript - React 对象数组的引用数组
- javascript - 多步验证
- python - 使用 tensorflow 的对象检测代码时看不到结果