是否可以使用oracle pl/sql檢索每行的同一記錄的當前數目?直到此行的同一條記錄的數目
例如, 我有類表,包括ID,姓名,年齡列
我想有學生用相同的名字和年齡進入類的順序,假設ID被打擊了無改變數據結構。
謝謝。
問候,
吉姆
是否可以使用oracle pl/sql檢索每行的同一記錄的當前數目?直到此行的同一條記錄的數目
例如, 我有類表,包括ID,姓名,年齡列
我想有學生用相同的名字和年齡進入類的順序,假設ID被打擊了無改變數據結構。
謝謝。
問候,
吉姆
不知道我完全明白你問什麼;你有一個奇怪的短語。輸入數據和預期結果的例子總是有用的。
也許是這樣的:
select id, name, age
from your_table
where (name, age) in
(select name. age
from your_table
group by name, age
having count(id) > 1)
order by name, age, id
/
你可以與分析解決這個問題。但是,你仍然需要一個外部查詢濾掉不重複的記錄,所以我不知道你會得到什麼:
select * from (
select id, name, age
, count(id) over (partition by name, age) as dup_count
from your_table)
where dup_count > 1
order by name, age, id
/
我也不清楚,但它的聲音,我與分析功能有關的東西。以此爲例子,看看srlno列,使用分析功能計算:
SELECT empno, deptno, hiredate,
ROW_NUMBER() OVER (PARTITION BY
deptno ORDER BY hiredate
NULLS LAST) SRLNO
FROM emp
WHERE deptno IN (10, 20)
ORDER BY deptno, SRLNO;
EMPNO DEPTNO HIREDATE SRLNO
------ ------- --------- ----------
7782 10 09-JUN-81 1
7839 10 17-NOV-81 2
7934 10 23-JAN-82 3
7369 20 17-DEC-80 1
7566 20 02-APR-81 2
7902 20 03-DEC-81 3
7788 20 09-DEC-82 4
7876 20 12-JAN-83 5
更多analyltic功能: http://www.orafaq.com/node/55
記住,是一個更好的方法,如果你可以用SQL實現自己的目標,而不是的PL/SQL。
是的我正在尋找分析的,但我不知道爲什麼我必須過濾dup_count超過1.總之,非常感謝。 – Jim