Данные по избирательным комиссиям РФ из ГАС Выборы

Материал из GIS-Lab
(Различия между версиями)
Перейти к: навигация, поиск
(Скачать данные)
 
(не показаны 38 промежуточных версий 1 участника)
Строка 24: Строка 24:
 
Ниже представлены данные, скачанные с сайтов избирательных комиссий субъектов РФ.
 
Ниже представлены данные, скачанные с сайтов избирательных комиссий субъектов РФ.
  
Актуальность: 15.02.2018
+
Актуальность: 05.09.2019
* Единая БД по всем данным ЦИК в формате [http://gis-lab.info/data/cik/cik_20180709.7z SQLite]
+
* Единая БД по всем данным ЦИК в формате [http://gis-lab.info/data/cik/cik_20190905.7z SQLite]
* Адреса, телефоны и пр. избирательных комиссий ([http://gis-lab.info/data/cik/cik_uik_20180709.7z CSV])
+
* Адреса, телефоны и пр. избирательных комиссий ([http://gis-lab.info/data/cik/cik_uik_20190905.7z CSV])
* Составы комиссий ([http://gis-lab.info/data/cik/cik_people_20180709.7z CSV])
+
* Составы комиссий ([http://gis-lab.info/data/cik/cik_people_20190905.7z CSV])
* Резерв участковых избирательных комиссий ([http://gis-lab.info/data/cik/cik_people_reserve_20180709.7z CSV])
+
* Резерв участковых избирательных комиссий ([http://gis-lab.info/data/cik/cik_people_reserve_20190905.7z CSV])
* Исходные данные: html-страницы ([http://gis-lab.info/data/cik/cik_20180709_orig.7z файл])
+
* Исходные данные: html-страницы ([http://gis-lab.info/data/cik/cik_20190905_orig.7z файл])
  
 
===Архив===
 
===Архив===
Строка 43: Строка 43:
 
*20170719
 
*20170719
 
*20180215
 
*20180215
 +
*20180709
 +
*20180906
 +
*20190101
 +
*20190313
 +
*20190617
  
 
==Структура данных ==
 
==Структура данных ==
Строка 264: Строка 269:
  
 
==Примеры использования==
 
==Примеры использования==
 +
 
* Скачать данные об адресах и составах избирательных комиссий Башкортостана
 
* Скачать данные об адресах и составах избирательных комиссий Башкортостана
  
Строка 272: Строка 278:
 
  python down.py --with-reserve --region=orel
 
  python down.py --with-reserve --region=orel
  
Список используемых наименований субъектов РФ можно посмотреть в файле cik.py  
+
Список используемых наименований субъектов РФ можно посмотреть в файле cik.py
 +
 
 +
==Примеры SQL запросов==
 +
 
 +
<span style="color:#ff0000">'''NB''' В программе '''sqlite''' по умолчанию не включена поддержка сопоставления кириллических символов.</span> По умолчанию не работают функции перевода строки в нижний и верхний регистр и не работает регистронезависимый поиск. Как исправить этот недостаток описано [[#Подключение регистронезависимого поиска для sqlite|ниже]].
 +
 
 +
Запрос к базе данных выглядит следующим образом
 +
<syntaxhighlight lang="bash">
 +
sqlite3 -header -csv cik.sqlite "sql запрос" > result.csv
 +
</syntaxhighlight>
 +
 
 +
Примеры простых sql запросов:
  
 
* Выгрузить из SQLite базы списочный состав всех избирательных комиссий Москвы с указанием названий комиссий
 
* Выгрузить из SQLite базы списочный состав всех избирательных комиссий Москвы с указанием названий комиссий
  
  sqlite3 -header -csv cik.sqlite "select cik_uik.name, cik_people.* from cik_people inner join cik_uik on cik_people.ik_id=cik_uik.id where cik_uik.region='moscow_city'" > moscow_people.csv
+
<syntaxhighlight lang="SQL">
 +
select
 +
  cik_uik.name,
 +
  cik_people.*  
 +
from
 +
  cik_people  
 +
  inner join
 +
      cik_uik  
 +
      on cik_people.ik_id = cik_uik.id  
 +
where
 +
  cik_uik.region = 'moscow_city'
 +
</syntaxhighlight>
 +
 
 +
* Выгрузить из SQLite базы списочный состав всех участковых избирательных комиссий Московской области с указанием названий самой комиссии и вышестоящей
 +
 
 +
<syntaxhighlight lang="SQL">
 +
select
 +
  cik_uik2.name as "parent_name",
 +
  cik_uik1.region,
 +
  cik_uik1.url,
 +
  cik_uik1.name,
 +
  cik_people.fio,
 +
  cik_people.post,
 +
  cik_people.party
 +
from
 +
  cik_uik as cik_uik1
 +
  inner join
 +
      cik_uik as cik_uik2
 +
      on cik_uik1.parent_id = cik_uik2.id
 +
  join
 +
      cik_people
 +
      on cik_people.ik_id = cik_uik1.id
 +
where
 +
  cik_uik1.type_ik = 'uik'
 +
  and cik_uik1.region = 'moscow_reg'
 +
</syntaxhighlight>
  
 
* Выгрузить из SQLite базы адреса всех участковых комиссий Ярославской области
 
* Выгрузить из SQLite базы адреса всех участковых комиссий Ярославской области
  
sqlite3 -header -csv cik.sqlite "select cik_uik.* from cik_uik where cik_uik.region='yaroslavl' AND cik_uik.type_ik='uik' AND cik_uik.iz_id>0" > yaroslavl_uik.csv
+
<syntaxhighlight lang="SQL">
 +
select
 +
  cik_uik.*  
 +
from
 +
  cik_uik  
 +
where
 +
  cik_uik.region = 'yaroslavl'  
 +
  and cik_uik.type_ik = 'uik'  
 +
  and cik_uik.iz_id > 0
 +
</syntaxhighlight>
  
 
* Выгрузить из SQLite состав резервов участковых комиссий Тамбовской области
 
* Выгрузить из SQLite состав резервов участковых комиссий Тамбовской области
  sqlite3 -header -csv cik.sqlite "select cik_uik.name, cik_people_reserve.* from cik_people_reserve inner join cik_uik on cik_people_reserve.ik_id=cik_uik.id where cik_uik.region='tambov'" > tambov_people_reserve.csv
+
 
 +
<syntaxhighlight lang="SQL">
 +
select
 +
  cik_uik.name,
 +
  cik_people_reserve.*  
 +
from
 +
  cik_people_reserve  
 +
  inner join
 +
      cik_uik  
 +
      on cik_people_reserve.ik_id = cik_uik.id  
 +
where
 +
  cik_uik.region = 'tambov'
 +
</syntaxhighlight>
 +
 
 +
* Выгрузить из SQLite состав резервов участковых комиссий Московской области с указанием названия самой комиссии, а также вышестоящей
 +
 
 +
<syntaxhighlight lang="SQL">
 +
select
 +
  cik_uik2.name as "parent_name",
 +
  cik_uik1.region,
 +
  cik_uik1.url,
 +
  cik_uik1.name,
 +
  cik_people_reserve.fio,
 +
  cik_people_reserve.post,
 +
  cik_people_reserve.party
 +
from
 +
  cik_uik as cik_uik1
 +
  left outer join
 +
      cik_uik as cik_uik2
 +
      on cik_uik1.parent_id = cik_uik2.id
 +
  join
 +
      cik_people_reserve
 +
      on cik_people_reserve.ik_id = cik_uik1.id
 +
where
 +
  cik_uik1.region = 'moscow_reg'
 +
</syntaxhighlight>
  
 
* Найти данные по УИКам Брянского района Брянской области
 
* Найти данные по УИКам Брянского района Брянской области
Сначала найдем id комиссии Брянской области
+
Сначала с помощью запроса
  sqlite3 -header  cik.sqlite "select cik_uik.name, cik_uik.id, cik_uik.region from cik_uik where type_ik='ik'" | grep Брянск
+
<syntaxhighlight lang="SQL">
Результатом выполнения этой команды будет следующий текст
+
select
  Избирательная комиссия Брянской области|35654|bryansk
+
  cik_uik.name,
Так как ТИКи Брянской области имеют parent_id=35654, то их находим командой
+
  cik_uik.id  
  sqlite3 -header  cik.sqlite "select cik_uik.name, cik_uik.id from cik_uik where parent_id='35654'"
+
from
Из вывода этой команды находим, что УИКи Брянского района Брянской области имеют parent_id=35904. Используя этот результат несложно выбрать нужную информацию по этим УИКам.
+
  cik_uik  
 +
where
 +
  type_ik = 'ik'  
 +
  and cik_uik.name LIKE '%Брянск%'
 +
</syntaxhighlight>
 +
найдем id комиссии Брянской области. Результатом выполнения этой команды будет следующий текст
 +
<syntaxhighlight lang="text">
 +
Избирательная комиссия Брянской области|91193
 +
</syntaxhighlight>
 +
Так как ТИКи Брянской области имеют parent_id=91193, то их находим командой
 +
<syntaxhighlight lang="SQL">
 +
select
 +
  cik_uik.name,
 +
  cik_uik.id  
 +
from
 +
  cik_uik  
 +
where
 +
  parent_id = '91193'  
 +
  and cik_uik.name LIKE '%Брянск%'
 +
</syntaxhighlight>
 +
Из вывода этой команды
 +
<syntaxhighlight lang="text">
 +
name|id
 +
Брянск, Бежицкая|91194
 +
Брянск, Володарская|91258
 +
Брянск, Советская|91288
 +
Брянск, Фокинская|91338
 +
Брянская|91461
 +
</syntaxhighlight>
 +
находим, что УИКи Брянского района Брянской области имеют parent_id=91461. Используя этот результат несложно выбрать нужную информацию по этим УИКам.
  
NB. Это лишь пример работы со срезом от 29.02.2016. В срезах за другие даты значения id могут отличаться.
+
NB. Это лишь пример работы со срезом от 01.01.2019. В срезах за другие даты значения id могут отличаться.
 +
 
 +
* Если известно название вышестоящей комиссии, то составы непосредственно нижестоящих комиссий можно выгрузить одной командой. Например, следующая команда выдает составы всех УИК района Южное Тушино Города Москвы
 +
 
 +
<syntaxhighlight lang="SQL">
 +
select
 +
  cik_uik.parent_id,
 +
  cik_uik.name,
 +
  cik_people.*
 +
from
 +
  cik_people
 +
  inner join
 +
      cik_uik
 +
      on cik_people.ik_id = cik_uik.id
 +
where
 +
  cik_uik.parent_id in
 +
  (
 +
      select
 +
        cik_uik.id
 +
      from
 +
        cik_uik
 +
      where
 +
        cik_uik.name like '%Южное Тушино%'
 +
  )
 +
</syntaxhighlight>
  
 
* Поиск члена комиссии по фамилии по всем комиссиям
 
* Поиск члена комиссии по фамилии по всем комиссиям
  sqlite3 -header -csv cik.sqlite "select cik_uik.name, cik_uik.address, cik_people.* from cik_people inner join cik_uik on cik_people.ik_id=cik_uik.id where cik_people.fio LIKE '%Иванов Иван%'" > ivanov_ivan.csv
+
 
 +
<syntaxhighlight lang="SQL">
 +
select
 +
  cik_uik.name,
 +
  cik_uik.address,
 +
  cik_people.*  
 +
from
 +
  cik_people  
 +
  inner join
 +
      cik_uik  
 +
      on cik_people.ik_id = cik_uik.id  
 +
where
 +
  cik_people.fio LIKE '%Иванов Иван%'
 +
</syntaxhighlight>
 +
 
 +
==Подключение регистронезависимого поиска для sqlite==
 +
По умолчанию '''sqlite''' умеет переводить символы в верхний или нижний регистр и искать строки без учета регистра только для ASCII символов. Для поддержки этих операций для символов вне этого диапазона необходимо подключить специальное расширение. Для этого
 +
 
 +
* Необходимо скачать [https://www.sqlite.org/cgi/src/doc/trunk/README.md исходные тексты sqlite].
 +
 
 +
* Распаковать архив с исходными текстами и перейти в директорию ''ext/icu/''.
 +
 
 +
* Скомпилировать расширение icu.
 +
 
 +
* Регистронезависимый поиск по базе данных осуществляется командой
 +
<syntaxhighlight lang="bash">
 +
sqlite3 -header -csv cik.sqlite '.load /PATH/TO/ICU/EXTENSION/libSqliteIcu.so sqlite3_icu_init' "sql запрос" > result.csv
 +
</syntaxhighlight>
  
 
==Альтернативные машиночитаемые источники данных==
 
==Альтернативные машиночитаемые источники данных==

Текущая версия на 08:18, 9 сентября 2019

Эта страница опубликована в основном списке статей сайта
по адресу http://gis-lab.info/qa/cik-data.html


Данные об избирательных комиссиях в машиночитаемом виде

На региональных сайтах избирательных комиссий (субодомены сайта ЦИК) появилась информация о всех территориальных и участковых избирательных комиссиях (например Алтайский край). К сожалению, исходно информация предоставляется не в машиночитаемом виде, что препятствует эффективному ее использованию для анализа данных и картографии. Нами были написали скрипты для скачивания всех данных о комиссиях и здесь можно получить полную БД в машиночитаемом виде.

Содержание

[править] Общая информация

Для каждой избирательной комиссии предоставляется следующая информация:

  • Наименование избирательной комиссии
  • Адрес комиссии
  • Телефон
  • Факс
  • Адрес электронной почты
  • Срок окончания полномочий

Для подавляющего большинства участковых избирательных комиссий факс и адрес электронной почты не указаны.

Также указана информация по каждому члену избирательной комиссии и по резерву в участковые избирательные комиссии:

  • Фамилия Имя Отчество
  • Должность (председатель/зам. председателя/секретарь/член)
  • субъект, предложивший данную кандидатуру в состав комиссии

[править] Скачать данные

Ниже представлены данные, скачанные с сайтов избирательных комиссий субъектов РФ.

Актуальность: 05.09.2019

  • Единая БД по всем данным ЦИК в формате SQLite
  • Адреса, телефоны и пр. избирательных комиссий (CSV)
  • Составы комиссий (CSV)
  • Резерв участковых избирательных комиссий (CSV)
  • Исходные данные: html-страницы (файл)

[править] Архив

Чтобы скачать предыдущие версии данных, необходимо поменять дату в ссылках на другую, имеющуюся в архиве. Доступны следующие даты:

  • 20140404
  • 20140629
  • 20141119
  • 20150915
  • 20160229
  • 20160629
  • 20170121
  • 20170719
  • 20180215
  • 20180709
  • 20180906
  • 20190101
  • 20190313
  • 20190617

[править] Структура данных

Таблица адресов избирательных комиссий (cik_uik):

Код поля Название поля Примечания Пример
id id избирательной комиссии Если для записи из резерва не удается найти подходящую комиссию, то в таблице адресов избирательных комиссий создается фейковая запись, которой назначается отрицательное значение id. 45766
iz_id id избирательной комиссии, используемый в ГАС Выборы 442401997889
reserve_iz_id id резерва участковой избирательной комиссии, используемый в ГАС Выборы 828
parent_id id "вышестоящей" избирательной комиссии 45764
type_ik тип избирательной комиссии type_ik=ik – избирательная комиссия субъекта РФ

type_ik=tik – территориальная избирательная комиссия
type_ik=uik – участковая избирательная комиссия

uik
region субъект РФ, к которой относится избирательная комиссия kemerovo
url URL интернет страницы с информацией об избирательной комиссии http://www.kemerovo.vybory.izbirkom.ru/region/kemerovo?action=ik&vrn=442401997889
name название избирательной комиссии Участковая избирательная комиссия №545
address адрес избирательной комиссии 652840, Кемеровская область, Мысковский городской округ, Чувашка поселок, улица Алтын Шор, дом 4, Дом культуры поселка Чувашка
address_voteroom адрес помещения для голосования Это поле появилось в выгрузке начиная с 15.02.2018 652840, Кемеровская область, Мысковский городской округ, Чувашка поселок, улица Алтын Шор, дом 4, Дом культуры поселка Чувашка
lat_ik, lon_ik координаты избирательной комиссии Эти поля появились в выгрузке начиная с 15.02.2018 53.597575, 87.818478
lat_voteroom, lon_voteroom координаты помещения для голосования Эти поля появились в выгрузке начиная с 15.02.2018 53.597575, 87.818478
phone телефон избирательной комиссии 8-(384-74)-95-6-46
phone_voteroom телефон помещения для голосования Это поле появилось в выгрузке начиная с 15.02.2018 8-(384-74)-95-6-46
fax номер факса избирательной комиссии (38474)
email адрес электронной почты избирательной комиссии
end_date дата окончания полномочий избирательной комиссии 26.03.2018

Таблица составов избирательных комиссий (cik_people):

Код поля Название поля Примечания Пример
id id записи 683770
ik_id id избирательной комиссии этот id указывает на комиссию из таблицы адресов комиссии 78161
number номер в списке членов избирательной комиссии никакого смысла это поле не имеет 10
fio Фамилия Имя Отчество члена избирательной комиссии Якимова Татьяна Валерьевна
post должность Член
party субъект, предложивший данную кандидатуру в состав комиссии Свердловское региональное отделение политической партии "Российская объединенная демократическая партия "ЯБЛОКО"

Таблица резервов участковых избирательных комиссий (cik_people_reserve):

Код поля Название поля Примечания Пример
id id записи 457646
ik_id id избирательной комиссии этот id указывает на комиссию из таблицы адресов комиссии. Если для записи из резерва не удается найти подходящую комиссию, то в таблице адресов избирательных комиссий создается фейковая запись, которой назначается отрицательное значение id. 81578
number номер в списке членов резерва участковой избирательной комиссии никакого смысла это поле не имеет 1
fio Фамилия Имя Отчество члена резерва участковой избирательной комиссии Васькина Юлия Николаевна
post должность Зачислен в резерв составов УИК
party субъект, предложивший данную кандидатуру в состав комиссии собрание избирателей по месту работы - ГБОУ НПО "Профессиональный лицей №10", г.Тверь

[править] Недостатки

У представленных данных есть несколько недостатков

1. Неполная адресная информация об УИК

Адрес участковой избирательной комиссии (УИК) определяется постановлением главы соответствующего муниципального образования или решением ТИК. Обычно в этих документах указывают не только почтовый адрес УИК, но также и название соответствующего здания (школа, дом культуры, клуб, и пр.). В представленных на сайтах избирательных комиссий субъектов РФ информация о типе здания во многих случаях опускается. Кроме того, там не делается различий между адресом помещения для голосования и адресом избирательной комиссии.

2. Актуальность информации

Непонятна актуальность информации. Составы комиссий и адреса УИК время от времени меняются. Из представленных данных неясно, какие из этих изменений учтены.

3. Территории избирательных участков

Отсутствует информация о территории избирательных участков.

4. Непостоянство структуры записи адреса избирательной комиссии Встречаются разные вариации записи адреса избирательного участка

  • индекс, область, район, населенный пункт, улица (название места голосования), дом
  • индекс, область, район, населенный пункт (название места голосования), улица, дом
  • индекс, область, район, населенный пункт, улица, дом, название места голосования
  • и множество других

Название любого компонента адреса может фигурировать в разных вариантах, содержать опечатки или вообще отсутствовать. В середине адресной строки могут присутствовать неожиданные вставки вида

  • Адрес УИК и помещения для голосования:
  • адрес УИК
  • адрес помещения для голосования

[править] Скрипты

Для получения данных служат следующие скрипты:

  • down.py - скачивание исходных данных
  • cik.py - парсинг исходных данных в SQLite базу

Исходный код

Для преобразование SQLite -> CSV используются следующие команды:

 sqlite3 -header -csv cik.sqlite "select * from cik_people order by id" > cik_people.csv
 sqlite3 -header -csv cik.sqlite "select * from cik_uik order by id" > cik_uik.csv
 sqlite3 -header -csv cik.sqlite "select * from cik_people_reserve order by id" > cik_people_reserve.csv

[править] Примеры использования

  • Скачать данные об адресах и составах избирательных комиссий Башкортостана
python down.py --region=bashkortostan
  • Скачать данные об адресах, составах избирательных комиссий и резервов участковых избирательных комиссий Орловской области
python down.py --with-reserve --region=orel

Список используемых наименований субъектов РФ можно посмотреть в файле cik.py

[править] Примеры SQL запросов

NB В программе sqlite по умолчанию не включена поддержка сопоставления кириллических символов. По умолчанию не работают функции перевода строки в нижний и верхний регистр и не работает регистронезависимый поиск. Как исправить этот недостаток описано ниже.

Запрос к базе данных выглядит следующим образом

sqlite3 -header -csv cik.sqlite "sql запрос" > result.csv

Примеры простых sql запросов:

  • Выгрузить из SQLite базы списочный состав всех избирательных комиссий Москвы с указанием названий комиссий
SELECT
   cik_uik.name,
   cik_people.* 
FROM
   cik_people 
   INNER JOIN
      cik_uik 
      ON cik_people.ik_id = cik_uik.id 
WHERE
   cik_uik.region = 'moscow_city'
  • Выгрузить из SQLite базы списочный состав всех участковых избирательных комиссий Московской области с указанием названий самой комиссии и вышестоящей
SELECT
   cik_uik2.name AS "parent_name",
   cik_uik1.region,
   cik_uik1.url,
   cik_uik1.name,
   cik_people.fio,
   cik_people.post,
   cik_people.party 
FROM
   cik_uik AS cik_uik1 
   INNER JOIN
      cik_uik AS cik_uik2 
      ON cik_uik1.parent_id = cik_uik2.id 
   JOIN
      cik_people 
      ON cik_people.ik_id = cik_uik1.id 
WHERE
   cik_uik1.type_ik = 'uik' 
   AND cik_uik1.region = 'moscow_reg'
  • Выгрузить из SQLite базы адреса всех участковых комиссий Ярославской области
SELECT
   cik_uik.* 
FROM
   cik_uik 
WHERE
   cik_uik.region = 'yaroslavl' 
   AND cik_uik.type_ik = 'uik' 
   AND cik_uik.iz_id > 0
  • Выгрузить из SQLite состав резервов участковых комиссий Тамбовской области
SELECT
   cik_uik.name,
   cik_people_reserve.* 
FROM
   cik_people_reserve 
   INNER JOIN
      cik_uik 
      ON cik_people_reserve.ik_id = cik_uik.id 
WHERE
   cik_uik.region = 'tambov'
  • Выгрузить из SQLite состав резервов участковых комиссий Московской области с указанием названия самой комиссии, а также вышестоящей
SELECT
   cik_uik2.name AS "parent_name",
   cik_uik1.region,
   cik_uik1.url,
   cik_uik1.name,
   cik_people_reserve.fio,
   cik_people_reserve.post,
   cik_people_reserve.party 
FROM
   cik_uik AS cik_uik1 
   LEFT OUTER JOIN
      cik_uik AS cik_uik2 
      ON cik_uik1.parent_id = cik_uik2.id 
   JOIN
      cik_people_reserve 
      ON cik_people_reserve.ik_id = cik_uik1.id 
WHERE
   cik_uik1.region = 'moscow_reg'
  • Найти данные по УИКам Брянского района Брянской области

Сначала с помощью запроса

SELECT
   cik_uik.name,
   cik_uik.id 
FROM
   cik_uik 
WHERE
   type_ik = 'ik' 
   AND cik_uik.name LIKE '%Брянск%'

найдем id комиссии Брянской области. Результатом выполнения этой команды будет следующий текст

Избирательная комиссия Брянской области|91193

Так как ТИКи Брянской области имеют parent_id=91193, то их находим командой

SELECT
   cik_uik.name,
   cik_uik.id 
FROM
   cik_uik 
WHERE
   parent_id = '91193' 
   AND cik_uik.name LIKE '%Брянск%'

Из вывода этой команды

name|id
Брянск, Бежицкая|91194
Брянск, Володарская|91258
Брянск, Советская|91288
Брянск, Фокинская|91338
Брянская|91461

находим, что УИКи Брянского района Брянской области имеют parent_id=91461. Используя этот результат несложно выбрать нужную информацию по этим УИКам.

NB. Это лишь пример работы со срезом от 01.01.2019. В срезах за другие даты значения id могут отличаться.

  • Если известно название вышестоящей комиссии, то составы непосредственно нижестоящих комиссий можно выгрузить одной командой. Например, следующая команда выдает составы всех УИК района Южное Тушино Города Москвы
SELECT
   cik_uik.parent_id,
   cik_uik.name,
   cik_people.* 
FROM
   cik_people 
   INNER JOIN
      cik_uik 
      ON cik_people.ik_id = cik_uik.id 
WHERE
   cik_uik.parent_id IN 
   (
      SELECT
         cik_uik.id 
      FROM
         cik_uik 
      WHERE
         cik_uik.name LIKE '%Южное Тушино%'
   )
  • Поиск члена комиссии по фамилии по всем комиссиям
SELECT
   cik_uik.name,
   cik_uik.address,
   cik_people.* 
FROM
   cik_people 
   INNER JOIN
      cik_uik 
      ON cik_people.ik_id = cik_uik.id 
WHERE
   cik_people.fio LIKE '%Иванов Иван%'

[править] Подключение регистронезависимого поиска для sqlite

По умолчанию sqlite умеет переводить символы в верхний или нижний регистр и искать строки без учета регистра только для ASCII символов. Для поддержки этих операций для символов вне этого диапазона необходимо подключить специальное расширение. Для этого

  • Распаковать архив с исходными текстами и перейти в директорию ext/icu/.
  • Скомпилировать расширение icu.
  • Регистронезависимый поиск по базе данных осуществляется командой
sqlite3 -header -csv cik.sqlite '.load /PATH/TO/ICU/EXTENSION/libSqliteIcu.so sqlite3_icu_init' "sql запрос" > result.csv

[править] Альтернативные машиночитаемые источники данных

  • УИК ГЕО – данные об адресах участковых избирательных комиссий и географических координат помещений для голосования.
  • WikiУИКи - данные об избирательных комиссиях и их составах.
  • Мосгоризбирком
Персональные инструменты
Пространства имён

Варианты
Действия
Статьи
Спецпроекты
Инструменты