我需要在日期范围内找到所有员工的首次登录时间和上次退出时间。到目前为止,我尝试了使用Group by子句的不同方法,但是无法得到我想要的东西我尝试了这个查询
weblogic.jndi.WLInitialContextFactory
的实际表格
我想要与第二张图片相同的结果,但没有重复的行。我发现OVER& MySQL中没有PARTITION,这使得它变得更加困难。我不喜欢自我加入。
答案 0 :(得分:1)
您可以将查询包装到另一个SELECT
并在其上应用GROUP BY
,例如:
SELECT a.EmpName, a.LogDate, a.login, a.logout, a.logID
FROM (
SELECT p1.EmpName, p1.LogDate,
(SELECT MIN(LogTime) FROM log as p2 WHERE p2.EmpName=p1.EmpName Group by p2.EmpName) as login,
(SELECT MAX(LogTime) FROM log as p2 WHERE p2.EmpName=p1.EmpName Group by p2.EmpName) as logout, LogID
FROM log as p1 WHERE LogDate Between '2017-08-05 00:00:00' AND '2017-08-010
00:00:00' group by SrNo
) a
GROUP BY a.EmpName, a.LogDate, a.login, a.logout, a.logID