【发布时间】:2014-08-12 17:28:40
【问题描述】:
我不确定如何为这个问题命名,但我正在尝试执行以下操作:
我在表格中有如下形式的数据:
id value date
-- ----- --------
123 100 2014-08-01
124 101 2014-08-01
234 100.5 2014-08-02
...
它在两周内大约有 100k 行。我一直在尝试做的是创建一个排序矩阵,其中第一列是此期间存在的唯一 ID 列表,然后为每个日期创建一列,填充 value 字段,如果没有给定date 上特定id 的值,然后用NULL 填充它。
id 2014-08-01 2014-08-02 ...
----- ---------- --------- -----
123 100 105
124 101 NULL
...
我正在使用 SQLite,我的第一种方法是创建一个临时表,然后我想我可以填充它。创建表并使用一组唯一的id 填充第一列后,我尝试了以下代码(注意:我在temp_table 中使用它们的日期字符串命名了这些列):
INSERT OR REPLACE INTO temp_table ("2014-08-01") SELECT my_table.value
FROM my_table LEFT OUTER JOIN temp_table ON temp_table.id = my_table.id
WHERE my_table.date = '2014-08-01'
不幸的是,这似乎只是将新行添加到我的表中,而不是替换到现有的空行中,除了 id。我还考虑过如何使用复杂的SELECT 来做到这一点,但除了将表格加入到自身之外,我不确定它是如何工作的。
有什么建议吗?
【问题讨论】: