我正在用两个现有的表NSFABSTRACTS和AGENCIES创建一个新表。我希望结果是word,他们的fileid和org。如果一个单词在文档中出现多次。我只想捕获它一次。我想首先获取新表中的所有单词,然后根据唯一的fileid更新单词列表。以下是我捕获所有这些的查询
在:
FILEID WORD ORG
1 HOW OEC
1 TO OEC
1 HOW OEC
1 TO OEC
2 YOU DMS
2 YOU DMS
后:
FILEID WORD ORG
1 HOW OEC
1 TO OEC
2 YOU DMS
这是代码。
CREATE TABLE TEMP2(FILEID, WORD, ORG)AS
SELECT A.WORD, A.FILEID, B.ORG
FROM NSFABSTRACTS A JOIN AGENCIES B
ON A.FILEID=B.FILEID;
CREATE TABLE TMP(FILEID, WORD, ORG) LIKE TEMP2;
INSERT INTO TMP
SELECT DISTINCT FILEID, WORD
FROM TEMP2
GROUP BY FILEID, WORD;
错误发生在第二件。以下是消息:Error report:
SQL Error: ORA-00942: table or view does not exist
00942. 00000 - "table or view does not exist"
。它指向INSERT INTO TMP
。感谢。
答案 0 :(得分:2)
你可以试试这个:
CREATE TABLE TEMP2(FILEID, WORD, ORG)AS
SELECT DISTINCT A.WORD, A.FILEID, B.ORG
FROM NSFABSTRACTS A JOIN AGENCIES B
ON A.FILEID=B.FILEID;
即,应该为表的每一列应用DISTINCT。
答案 1 :(得分:1)
CREATE TABLE TEMP2(FILEID, WORD, ORG)AS
INSERT TEMP2(FILEID, WORD, ORD)
SELECT DISTINCT A.WORD, A.FILEID, B.ORG
FROM NSFABSTRACTS A JOIN AGENCIES B
ON A.FILEID=B.FILEID;