Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如何获取具有最小出生日期的唯一员工记录?_Sql_Oracle - Fatal编程技术网

Sql 如何获取具有最小出生日期的唯一员工记录?

Sql 如何获取具有最小出生日期的唯一员工记录?,sql,oracle,Sql,Oracle,如果名称字段重复,则只应提取一个名称;如果一个名称为男性,另一个名称为女性,则应提取女性;如果两个名称具有相同的性别,则应提取最低的DOB INPUT: NAME GENDER DOB --------- ------ ------- ABC M 20-MAR-18 ABC M 30-MAR-18 DEF M 20-MAR-18 DEF F 25-MAR-18 GHI F 20

如果名称字段重复,则只应提取一个名称;如果一个名称为男性,另一个名称为女性,则应提取女性;如果两个名称具有相同的性别,则应提取最低的DOB

INPUT:
NAME      GENDER DOB
--------- ------ -------
ABC       M      20-MAR-18
ABC       M      30-MAR-18
DEF       M      20-MAR-18
DEF       F      25-MAR-18
GHI       F      20-MAR-18
GHI       M      10-MAR-18
JKL       F      20-MAR-18
JKL       F      10-MAR-18

OUTUT:
NAME      GENDER DOB
--------- ------ -------
ABC       M      20-MAR-18
DEF       F      25-MAR-18
GHI       F      20-MAR-18
JKL       F      10-MAR-18

您可以使用窗口功能:

选择姓名、性别、出生日期 从…起 选择姓名、性别、出生日期、, 第二排 按名称划分-按名称分组 按性别排序,DOB-按性别排序,每个姓名组内的DOB 作为行号 从MyTable src 其中RowNumber=1-每组仅获取一行 ;
您可以使用窗口功能:

选择姓名、性别、出生日期 从…起 选择姓名、性别、出生日期、, 第二排 按名称划分-按名称分组 按性别排序,DOB-按性别排序,每个姓名组内的DOB 作为行号 从MyTable src 其中RowNumber=1-每组仅获取一行 ;
嗨,这里-当你发布问题时,你能发布你尝试过的,你的问题是什么,而不是简单的,你能告诉我怎么做吗。。。你应该先尝试一些事情,然后如果你有问题,问一下…看看那里-当你发布问题时,你能发布你已经尝试过的,你的问题是什么,而不是简单的,你能告诉我怎么做吗。。。你应该先尝试一些东西,然后如果你有问题问…看看我想我解决了。我想我解决了。
SELECT * FROM (
    SELECT 
        p.*,
        row_number() OVER (partition by name order by gender, dob) as rn
    FROM Person p
) WHERE rn = 1
select 
  name,
  min(gender) keep(dense_rank first order by decode(gender, 'F', 0, 1)) gender,
  min(dob) keep(dense_rank first order by decode(gender, 'F', 0, 1)) dob                   
from 
  emp
group by 
  name