2014-04-05 5 views
0

그래서 AbstractID, SentenceID, WordID 및 Word의 큰 테이블을 갖게됩니다. 일부 단어는 여러 파일에 표시됩니다. 나는 모든 단어가 보여주는 얼마나 많은 파일을 계산하고 Word와 Count로 새로운 테이블을 만들고 싶습니다. 아래는 제 데이터입니다. enter image description here기존 테이블에서 테이블을 만드는 방법은 무엇입니까?

내 SQL 쿼리는 다음과 같습니다 :

CREATE TABLE WORDLIST(WORD, TOTALCOUNT) AS 
(
    SELECT WORD FROM ASSIGNMENT2 WHERE 
    (
    SELECT WORD, COUNT(*) FROM (select DISTINCT FILEID, WORD FROM ASSIGNMENT2) 
    GROUP BY WORD ORDER BY COUNT(*) DESC)); 
그것은 나에게 오류를주고있다

: "오류 보고서 : SQL 오류 : ORA-00936 :없는 표현 00936. 00000 -" "표현 누락 * 원인 :
* 작업 : "

어떻게 수정합니까? 감사.

답변

1

오히려 쿼리가 너무 복잡해집니다. 오류는 외부 where 절에 조건이 없기 때문에 발생합니다. 당신은 여러 가지를 선택하고 있습니다. 이것은 어쨌든 옳지 않습니다. 그리고 쿼리를 괄호 안에 묶지 않아도됩니다.

당신 다만 수

는 새로운 테이블에 대해 미래의 쿼리에 영향을 미치지 않습니다으로 쿼리를 주문 아무 소용이 없습니다
CREATE TABLE WORDLIST (WORD, TOTALCOUNT) AS 
SELECT WORD, COUNT(DISTINCT FILEID) 
FROM ASSIGNMENT2 
GROUP BY WORD; 

- 당신은 여전히 ​​그 주문이 행에는 고유의 순서가 없기 때문에이 테이블 안에서. (그리고 나는 order by이 create-as 문에 오류를 일으키지 만 즉시 확인할 수는 없다고 생각합니다.)

이 정보를 보유 할 테이블을 만드는 것이 이상하게 보일지라도 최신 정보를 빨리 찾아 볼 수 없습니다. 아마 당신은 정말보기를 원했던 것일까 요?

+0

최고 및 최저 빈도 단어를 제거하고 싶기 때문에 주문했습니다. –

+0

이제 오류 메시지가 나타납니다 :'명령 줄에서의 오류 : 8 열 : 14 오류 보고서 : SQL 오류 : ORA-00955 : 이름이 이미 기존 개체에 사용되었습니다. 00955. 00000 - "이름이 이미 사용되었습니다. 기존 개체 " * 원인 : * 작업 :'전에 SQL에서 이미 WORDLIST 테이블을 만들었는지 확인했습니다. 내가 어떻게 확인하는지 알아? 미안 해요, 이거 처음이에요. –

+0

@ Q-ximi - 질문에 나온 테이블을 만들지는 못했지만 그 전에 시도했을 수도 있습니다. 'select object_type, object_name from user_objects where object_name ='WORDLIST''로 확인하십시오. 현재 테이블 정의를 보려면 SQL * Plus에서'wordlist'를 기술하십시오. 필요하다면, 테이블 워드리스트를 삭제할 수 있습니다. 당신이 무엇을 떨어 뜨릴 것인지를 알고 있는지 확인하십시오. –