SQLite3 Экспорт данных - PullRequest
       31

SQLite3 Экспорт данных

0 голосов
/ 15 октября 2018

В настоящее время я работаю над проектом python с тензорным потоком, и мне нужно предварительно обработать мои данные.

Данные, которые я хочу использовать, хранятся в базе данных sqlite3 со столбцами:

timestamp|dev|event
10:00    |01 | on
11:00    |02 | off
11:15    |01 | off
11:30    |02 | on

И я хотел бы экспортировать данные в файл (.csv), который выглядит следующим образом:

Timestamp|01 |02 |...
10:00    |on |0  |...
11:00    |on |off|...
11:15    |off|off|...
11:30    |off|on |...

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

SELECT COUNT(DISTINCT dev) FROM table01;

В настоящее время это число равно 38 различным устройствам и всего 10000 записей.

Есть ли способ для этоговычисления с sqlite3 или я должен написать программу на Python для обработки данных.Я новичок в обеих темах.

~ Fabian

1 Ответ

0 голосов
/ 15 октября 2018

Вы можете работать в sqlite, что-то вроде этого

select 
    timestamp, 
    group_concat(case when dev="01" then event else "" end, "") as D01, 
    group_concat(case when dev="02" then event else "" end, "") as D02  
from 
    table01 
group by 
    timestamp;

В основном вы поворачиваете таблицу.

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

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

Также, если {timestamp, device} не уникален, вам нужно сделать его уникальным.

...