oracle sql查询为每个deptid显示一行

oracle sql查询为每个deptid显示一行,sql,oracle,Sql,Oracle,伙计们,我想为以下记录的表A编写一个oracle sql查询 -------------------------- R_ID D_ID DEPT --------------------------- 1 200 CLERK 1 50 CLERK 2 190 MANAGER 2 134 DPTY MANAGER 3 12

伙计们,我想为以下记录的表A编写一个oracle sql查询

--------------------------
 R_ID    D_ID       DEPT     
--------------------------- 
  1      200        CLERK
   1        50       CLERK
   2       190      MANAGER
   2       134       DPTY MANAGER
   3       12        SERVICE MANAGER
结果应该如下所示,即所有R_ID中的第一行

--------------------------
 R_ID    D_ID       DEPT     
--------------------------- 
  1       200      CLERK
  2       190      MANAGER
  3       12       SERVICE MANAGER

请帮帮我。

正如Ronnis提到的,我不确定您是如何订购这些行的,但通常您会这样做。注意:只需在ORDER BY子句中替换正确的顺序即可

SELECT R_ID, D_ID, DEPT
FROM
(
 SELECT R_ID, D_ID, DEPT, ROW_NUMBER() over(partition by R_ID order by D_ID) r
) WHERE R=1 
SELECT DISTINCT R_ID
    , first_value(D_ID) over (partition by R_ID order by D_ID) D_ID
    , first_value(DEPT) over (partition by R_ID order by D_ID) DEPT
FROM your_table
ORDER BY R_ID;
希望这有帮助

SELECT min(r_id), min(d_id), dept FROM the_table_with_no_name GROUP BY dept; 选择最小值(r\U id)、最小值(d\U id)、部门 从没有名称的\u表\u 按部门分组;
行没有顺序。您希望按什么逻辑对行进行排序?