你好我对关系数据库和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插入,所以我的语法也可能导致这种情况。任何帮助表示赞赏。
答案 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
通常,除非您是数据库的维护者并且有权这样做,否则您将无法在数据库中创建永久表。