2017-04-12 42 views
0

我有一個Oracle表(FILE_RECS),在其下面的格式有數據計數:Oracle查詢獲取的基於另一個查詢的輸出不重複的記錄

file_name    record  time      issue 
C:/work/file.csv  234RCV  2017-04-10 02.50.35  RCM0001 
D:/new/file.csv  235RCV  2017-04-09 07.20.59  RCM0002 
D:/new1/file1.csv  235RCV  2017-03-08 09.28.19  RCM0002 
D:/new/file1.csv  236RCV  2017-04-09 03.32.54  RCM0002 
C:/new/file.csv  237RCV  2017-04-09 23.24.18  RCM0002 

文件名相同,但路徑不同。我需要獲取每個文件中不同記錄的數量。 我最後的輸出應該是這樣的:

FILE_NAME    Number of records 
file.csv    3 
file1.csv    2  

我能夠解析使用查詢文件名:

SELECT DISTINCT substr(S,instr(file_name,'\',-1)+1,length(file_name)-instr(file_name,'\',-1)) AS FILE_NAME FROM (select DISTINCT file_name from FILE_RECS); 

如何爲原始請求方法不僅肯定。

有人可以幫助我如何得到這個?

回答

2

你幾乎在那裏。只需要group by提取的file_name。

SELECT substr(file_name,instr(file_name,'/',-1)+1,length(file_name)-instr(file_name,'/',-1)) AS FILE_NAME 
,COUNT(*) as number_of_records 
FROM FILE_RECS 
GROUP BY substr(S,instr(file_name,'/',-1)+1,length(file_name)-instr(file_name,'/',-1))