永久保留SQLite中的更改

时间:2017-01-29 18:29:31

标签: r sqlite r-markdown

你好我对关系数据库和SQLite的世界相当新,但我正在尝试在R Markdown中编辑和组合SQLite中的多个数据集,我想知道是否有任何方法可以进行每次更改常驻。例如,在我的第一个选择语句中

SELECT id, avg(days) Average
FROM data1
GROUP BY id

然后在我得到平均值列后,我想使用主键从另一个数据集加入一列,如下所示:

SELECT data1.*, data2.purchases
FROM data1
LEFT JOIN data2
ON data1.id=data2.id

但是当我尝试进一步改变表时,我希望第一组中的更改是永久性的并应用。有什么我做错了吗?这都是在R markdown中的SQLite插入,所以我的语法也可能导致这种情况。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:1)

您可以将第一个选择的结果重命名为别名,即A,然后将其与另一个表data2连接。通常,您不希望将所做的选择保存到数据库中,这会非常快速地破坏您的数据库:

嵌套选择

SELECT A.*, data2.purchases
FROM
(
    SELECT id, avg(days) Average
    FROM data1
    GROUP BY id
) A
LEFT JOIN data2
ON A.id = data2.id

您可以创建一个临时表,它对您当前与数据库的连接有效:

创建临时表

CREATE TEMP TABLE A AS
SELECT id, avg(days) Average
FROM data1
GROUP BY id

然后您可以将其用作:

SELECT A.*, data2.purchases
FROM A
LEFT JOIN data2
ON A.id=data2.id

通常,除非您是数据库的维护者并且有权这样做,否则您将无法在数据库中创建永久表。

相关问题