如: 姓名 性别 部门 LYZ F DEP1 LYZ M DEP1 LYZ M DEP2 要求结果中包含这三列,但是只显示第一行,即对姓名重复的记录只显示第一条
只能实现对不分组列按某个规则取,如min,max SELECT DISTICT NAME,min(DEP),min(SEX) FROM TABLE1 WHERE………… group by name 会报错,估计是因为部门,性别等非数值型数据无法min(),max()等聚组函数,前面提到的分析函数,first_value(),不知哪位能给我详细解释一下呢,举个用法的例子
select * from ( select t.*,rank() over(partition by 姓名 order by 性别,部门) rn from t ) where rn=1 t是你的结果集
SELECT DISTICT NAME,min(DEP),min(SEX) FROM TABLE1 WHERE………… group by name不好意思DISTINCT 写成DISTICT了,汉字也可以取大小的
SELECT DISTICT NAME,min(DEP),min(SEX) FROM TABLE1 WHERE………… group by name
能不能解释的详细一点呢?没见过这个函数
姓名 性别 部门
LYZ F DEP1
LYZ M DEP1
LYZ M DEP2
要求结果中包含这三列,但是只显示第一行,即对姓名重复的记录只显示第一条
SELECT DISTICT NAME,min(DEP),min(SEX) FROM TABLE1 WHERE………… group by name
会报错,估计是因为部门,性别等非数值型数据无法min(),max()等聚组函数,前面提到的分析函数,first_value(),不知哪位能给我详细解释一下呢,举个用法的例子
select t.*,rank() over(partition by 姓名 order by 性别,部门) rn from t
)
where rn=1
t是你的结果集