2011-01-06 2 views
0

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

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

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

+0

Строки не имеют порядка. По какой логике вы хотите заказать строки? – Ronnis

ответ

0

Как упоминал Роннис, я не уверен, как вы заказываете строки, но так вы бы сделали это в целом. Обратите внимание, что просто замените правильный порядок в предложениях 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
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 
0
 
SELECT min(r_id), min(d_id), dept 
FROM the_table_with_no_name 
GROUP BY dept; 
Смежные вопросы