Как использовать sqlite3 для очистки данных - PullRequest
0 голосов
/ 08 ноября 2018

Я создал базу данных, используя DB Browser, просто вставив все CSV-файлы, которые содержат несколько таблиц, и таблица выглядит так:

sqlite> .schema P2012_EBITDA CREATE TABLE P2012_EBITDA ( Mark, Companyname, BvDIDnumber, CountryISOCode, Dateofincorporation, Cons.code, Lastavail.year, ClosingdateLastavail.yr, Numberofavailableyears, NACERev.2Corecode(4digits), BVDindependenceindicator, Type(s)ofaccountsavailable, Typeofentity, EBITDAthUSDLastavail.yr, EBITDAthUSDYear-1, EBITDAthUSDYear-2, EBITDAthUSDYear-3, EBITDAthUSDYear-4, EBITDAthUSDYear-5, EBITDAthUSDYear-6, EBITDAthUSDYear-7, EBITDAthUSDYear-8, EBITDAthUSDYear-9 );

sqlite> SELECT * FROM P2012_EBITDA LIMIT 1; 1 | ROYAL DUTCH SHELL PLC | GB04366849 | RU | 05/02/2002 | C2 | 2010 | 31.12.2010 | 6 | 0610 | A + | Минусы. & Uncons. | Производственная компания | 51,927,636 | 36,122,919 | 65,082,035 | 62,494,114 | 57,180,747 | 56,649,160 ||||

Теперь мне нужно преобразовать данные таким образом, чтобы идентификатор BvD и отчетный год однозначно идентифицировали запись. Сначала определите, какой год является «последним доступным отчетным годом» (0, -1, -2, -3, -4, -5, -6, -7, -8, -9). Предположим, что дата закрытия счета для записи - 2012/7/1 или позже, затем определите последний доступный отчетный год как 2012. Если дата закрытия 2012/6/30 или ранее, определите последний доступный отчетный год как 2011. Второй преобразуйте все относительные годы (в абсолютные отчетные годы (например, если последний доступный отчетный год - 2011, то абсолютные годы - 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002). измените данные с «широкой формы» на «длинную форму». Поскольку теперь BvD ID + отчетный год однозначно идентифицирует запись, вы можете установить первичный ключ в BvD ID и отчетный год.

Очень ценится!

...