我有一个Oracle表(FILE_RECS),其中包含以下格式的数据:
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);
不确定如何处理原始请求。
有人可以帮我解决这个问题吗?
答案 0 :(得分: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))