根据第一列合并CSV表行 - sqlite

时间:2016-03-16 11:41:43

标签: sql excel sqlite csv

我正在尝试将excel数据库迁移到sqlite中,尽管我对后者没有专业知识。

我的第一步是将一系列CSV文件导入到sql数据库中(我发现这很容易)。 这些表有一个共同的结构,即

column1: timestamp
column2: temperature
column3: humidity

第二步是根据第一列(时间戳)中的值合并导入表中的行。行中的数据可能重叠或有间隙,例如:

timestamp,temperature,humidity
04/01/2016 09:00:00, 23.1, 45.5
04/01/2016 09:15:00, 23.3, 46
...
20/01/2016 15:15:00, 25, 40

timestamp,temperature,humidity
10/01/2016 09:00:00, 23.1, 45.5
10/01/2016 09:15:00, 23.3, 46
...
30/01/2016 15:15:00, 25, 40

如何合并两个(或更多)导入的CSV,覆盖公共数据并将间隙的空白(或NULL)值留在一个主sql表中?

谢谢, 安德烈

1 个答案:

答案 0 :(得分:1)

My_Table 包含以下列:

  

时间| temp |湿度

example.csv 包含以下数据:

  

10/01/2016 09:15:00,23.1,45.5

     

10/01/2016 09:11:00,22.3,41.5

     

10/01/2016 09:15:00,23.1,42.5

转到Sqlite3终端并运行以下命令。

.separator ","
.import example.csv My_Table

同样,您可以最后导入所有csv文件,您可以根据时间删除重复的行。

delete from My_Table where rowid not in (select max(rowid) from My_Table group by time);