Sql server SQL,如何删除重复行并找到最小值(timeIn)和最大值(timeOut)

Sql server SQL,如何删除重复行并找到最小值(timeIn)和最大值(timeOut),sql-server,Sql Server,我只想问一个问题,如何使用不同的timeIn和timeOut管理重复行。我的意思是,结果不应该是具有相同id的重复行,但同时该特定人员的timeIn应该是最小timeIn,而timeOut应该是最后一次timeOut。attDate必须在同一天。该如何进行查询,有什么想法吗 下面是我的一些简单代码: SELECT id, name, attend_date, Time_in, Time_out, count(1) as Count_person FROM employ

我只想问一个问题,如何使用不同的
timeIn
timeOut
管理重复行。我的意思是,结果不应该是具有相同
id
的重复行,但同时该特定人员的
timeIn
应该是最小
timeIn
,而
timeOut
应该是最后一次
timeOut
attDate
必须在同一天。该如何进行查询,有什么想法吗

下面是我的一些简单代码:

SELECT 
    id, name, attend_date, Time_in, Time_out,
    count(1) as Count_person
FROM 
    employee
WHERE 
    attDate = '12/01/2015' AND Time_out IS NOT NULL 
GROUP BY 
    id, name, attend_date, Time_in, Time_out
HAVING 
    COUNT(1) > 1 

//注意。我只是一个初学者,正在努力提高自己。

您可以使用
行数
获取最新的
输入时间
和最后的
输出时间

WITH Cte AS(
    SELECT *,
        RN_Time_in = ROW_NUMBER() OVER(PARTITION BY id, attDate ORDER BY Time_in),
        RN_Time_Out = ROW_NUMBER() OVER(PARTITION BY id, attDate ORDER BY Time_Out DESC)
    FROM employee
)
SELECT *
FROM Cte
WHERE
    RN_Time_in = 1 
    AND RN_Time_Out = 1

请同时添加您的表格结构。tq WEWEWETHEMANCE。shree.pat18-如何添加表结构?我还是不太赞成用这个东西。有什么建议吗?你能添加一些预期输出的样本数据吗?谢谢你的回答@wewesthemenace,真的帮助我:)