У меня есть следующая таблица, эта таблица содержит информацию о количестве файлов и некоторых других полях.Это справочная таблица или справочная таблица.
id nm expected_num_files file_name_expr
1 CVS 3 cvs_d.*.zip
2 CVS 2 cvs_w.*.zip
3 Rite-aid 4 ra_d.*.gz
5 Walgreen 2 wal_d*.txt
У меня есть таблица аудита, в которой хранятся файлы с полученной информацией.Обе эти таблицы могут быть объединены с идентификатором
audit_id id file_nm
123 1 cvs_d1.zip
124 1 cvs_d2.zip
125 2 cvs_w1.gz
126 1 cvs_d3.zip
В идеальном случае, когда все файлы получены.
Идеальный результат выберите идентификатор, количество (*) из группы аудита по идентификатору
id count_files
1 3
2 2
3 4
5 2
CurrentResult таблицы аудита Но в текущем случае яполучил только некоторые файлы
id count_files
1 3
2 1
Чтобы достичь идеального случая, мне нужно заполнить фиктивные записи в итоговой таблице из таблицы поиска пустым аудитом
Мне нужна итоговая таблица выводадолжно нравиться это.
Если я выполню запрос select id , count(*) from auditlog group by id
в финальной таблице, я получу идеальный результат, который выделен выше
audit_id id file_nm
123 1 cvs_d1.zip
124 1 cvs_d2.zip
126 1 cvs_d3.zip
-1 2 cvs_w.*.gz
125 2 cvs_w1.gz
-1 3 ra_d*.gz
-1 3 ra_d.*.gz
-1 3 ra_d.*.gz
-1 3 ra_d.*.gz
-1 5 wal_d*.txt
-1 5 wal_d*.txt
Мы можем сгенерировать строки initailлегко, но строки с -1 генерируются на основе количества файлов, не полученных из столбца (количество файлов, которые они не отправили)
Объяснить итоговую таблицу: так как у нас есть 3 записи для идентификатора 1 в таблице аудитапоэтому мы заполнили их в финальной таблице, но для идентификатора 2 у нас есть одна запись в таблице аудита, которую мы заполнили, а для другой записи мы заполнили -1.