追加到SQL数据库(如果不存在)语句



我现在有这个代码来过滤掉另一个表中的数据:

SELECT sym,
tstamp,
COUNT(*) AS trades
FROM datas
GROUP BY sym,
tstamp
HAVING COUNT(tstamp) > 300)
INSERT INTO tradecounts

哪种方法很好,但我认为只添加不在其中的新数据会更有效?我正试图使用这个代码来做到这一点,但没有运气:

IF NOT EXISTS(SELECT sym,
tstamp,
COUNT(*) AS trades
FROM datas
GROUP BY sym,
tstamp
HAVING COUNT(tstamp) > 300)
INSERT INTO tradecounts

我相信这是相当简单的,但我是SQL语言的新手(今天刚开始(。任何建议都将不胜感激,如果你有任何学习查询语言的好资源,我很乐意看到。谢谢

也许是这样的:

WITH x AS(
SELECT sym,
tstamp,
COUNT(*) AS trades
FROM datas
GROUP BY sym,
tstamp
HAVING COUNT(tstamp) > 300)
)
INSERT INTO tradecounts
SELECT x.* 
FROM
x LEFT JOIN tradecounts t ON x.sym = t.sym AND x.tstamp = t.tstamp
WHERE
t.sym IS NULL

尽管你所说的";已经存在";将定义如何构造ON子句——我猜它是";sym和tstamp对不存在于目的表";

相关内容

最新更新