Oracle SQL-запрос для отображения одной строки для каждого Deptid - PullRequest
0 голосов
/ 06 января 2011

Ребята, я хочу написать SQL-запрос Oracle для таблицы A из следующих записей

--------------------------
 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

любезно помогите мне.

Ответы [ 3 ]

0 голосов
/ 06 января 2011

Как упоминал Роннис, я не уверен, как вы упорядочиваете строки, но именно так вы и сделаете это в целом.Обратите внимание, просто замените правильный порядок в предложениях ORDER BY.

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;

Надеюсь, это поможет!

0 голосов
/ 06 января 2011
SELECT min(r_id), min(d_id), dept
FROM the_table_with_no_name
GROUP BY dept;
0 голосов
/ 06 января 2011
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 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...