选择每组仅最小值和最大值

时间:2021-01-21 01:36:06

标签: sql sql-server tsql

enter image description here

如何仅选择 tap_time = tap_type 1(min) 和 0(max) 的最小值和最大值中的 1 个,这是我未完成的查询!希望有人能帮助我。

use RFIDEmployee_DB

select *
from  (
    select FK_student_ID, Tap_Type, FK_Terminal_ID, Student_No, Last_Name, First_Name, Middle_Name, Tap_Time    
    from tbGateEntry
    inner join tbStudentInfo on tbGateEntry.FK_student_ID = tbStudentInfo.ID
) t    
order by Last_Name , Tap_Time

1 个答案:

答案 0 :(得分:0)

Rank 函数可以帮助您选择每种类型的前 1 个,根据您的要求更改列名

use RFIDEmployee_DB

select *
from  (
    select FK_student_ID, Tap_Type, FK_Terminal_ID, Student_No, Last_Name, First_Name, Middle_Name, Tap_Time, ROW_NUMBER() OVER (PARTITION BY Tap_Type ORDER BY Tap_Time) R   
    from tbGateEntry
    inner join tbStudentInfo on tbGateEntry.FK_student_ID = tbStudentInfo.ID
) t
where R = 1   
order by Last_Name , Tap_Time
相关问题