我有一个带有cityname表和湿度表的数据库。详情如下:
'cityname' has 2 columns:
-city_ID <- integer and primary key that increments automatically
-city_full_name <- character name i.e. boston, toronto, new york city etc...
'citymoisture' has 7 columns:
-city_ID <- tied to the city_ID field via a Foreign Key
-date
-time
-open
-high
-low
-close
我使用以下命令将数据上传到数据库
mysql> LOAD DATA INFILE 'Boston 1 Minute Moisture.txt'
-> INTO TABLE moisture
-> FIELDS TERMINATED BY ','
-> LINES TERMINATED BY '\n'
-> IGNORE 1 LINES
-> (@date, @time, open, high, low, close)
-> SET city_id=4,
-> date=STR_TO_DATE(@date, '%m/%d/%Y'),
-> time=STR_TO_DATE(@time, '%h:%i:%s %p');
我发现的问题是数据存在差距。当分钟周期到来时,传感器有时无法保存,因此有两段连续行之间的时间大于1分钟。我想确定这些差距并插入我自己的数据,即理想情况下是前一分钟数据的副本。
数据文件的示例输出:
Date, Time, Open, High, Low, Close
1/4/1999,9:31:00 AM,0.943,0.943,0.943,0.943
1/4/1999,9:32:00 AM,0.943,0.943,0.943,0.943
1/4/1999,9:33:00 AM,0.943,0.943,0.943,0.943
1/4/1999,9:35:00 AM,0.943,0.943,0.943,0.943
1/4/1999,9:36:00 AM,0.943,0.943,0.943,0.943
在此示例中看到缺少9:34的数据。我想要做的是找到一种方法来识别这种情况并进行更改。我想我可能只是将前一分钟的数据复制到缺失的分钟行中。
如果时间[1] - 时间[0]&gt; 1然后在其间插入前一行。非常感谢您的帮助。
答案 0 :(得分:0)
创建一个包含所有分钟数的表(1440行),并在加载数据表后对数据表执行左外连接。任何null的行都缺少数据。
不要忘记索引。