PostgreSQL 쿼리를 불일치
-
03-07-2019 - |
문제
내가 노력하고 실행하는 이 SQL command:
SELECT page.page_namespace, pagelinks.pl_namespace, COUNT(*)
FROM page, pagelinks
WHERE
(page.page_namespace <=3 OR page.page_namespace = 12
OR page.page_namespace = 13
)
AND
(pagelinks.pl_namespace <=3 OR pagelinks.pl_namespace = 12
OR pagelinks.pl_namespace = 13
)
AND
(page.page_is_redirect = 0)
AND
pagelinks.pl_from = page.page_id
GROUP BY (page.page_namespace, pagelinks.pl_namespace)
;
요 내가 그렇게 할 때,나는 다음과 같은 오류가:
ERROR: could not identify an ordering operator for type record
HINT: Use an explicit ordering operator or modify the query.
********** Error **********
ERROR: could not identify an ordering operator for type record
SQL state: 42883
Hint: Use an explicit ordering operator or modify the query.
가 추가하기: 순서(페이지입니다.page_namespace,pagelinks.pl_namespace)ASC 을 쿼리의 끝없는 성공이다.
업데이트:
나도 이:
SELECT page.page_namespace, pagelinks.pl_namespace, COUNT(*)
FROM page, pagelinks
WHERE pagelinks.pl_from = page.page_id
GROUP BY (page.page_namespace, pagelinks.pl_namespace)
;
하지만 나는 아직도 이 같은 오류가 있습니다.
다.
해결책
나는 어떤 문서도 확인하지 않았지만 당신이 당신의 GROUP BY
괄호 안의 표현은 나에게 특이한 것 같습니다. 여기서 괄호를 사용하지 않으면 어떻게됩니까?
다른 팁
나는 정말 전문가,그러나 내의 이해하는 메시지는 PostgreSQL compains 에 대한되지 않을 처리할 수 있는 중 page.page_namespace <=3
나 pagelinks.pl_namespace <=3
.비교를 만들기 위해 다음과 같이 필요하는 순서를 정의 그리고 어쩌면 하나의 이러한 필드가 표준 수치다.아니면 어떤 문제로 정수 대부동 소수점어질문하는 경우"3.0=3"정말 그 대답하기 쉬운 이후 부동 소수점의 표현 3.0 가능성이 가장 정확하지 않 3.
모두 추측,하지만 난 정말 그 두 <=
s 는 문제입니다.
글쎄, 나는 당신이 사용하는 스키마 (*)를 모르지만 오류 메시지는 명확 해 보입니다. 열 중 하나는 유형입니다 기록 레코드를 주문할 연산자는 없지만 <=와 같은 쿼리의 일부는 그러한 순서 연산자가 필요합니다. 문제의 핵심은 주문할 연산자가 부족하기 때문에 주문을 사용하는 데 도움이되지 않습니다.
(*) 다른 질문에서, 나는 당신의 스키마가 wikipedia page dump라고 가정합니다. http://download.wikimedia.org/enwiki/latest/enwiki-latest-page.sql.gz 옳은?
나는 약간의 오류가 있습니다. 하지만이 페이지를 찾았습니다.http://www.w3schools.com/sql/sql_groupby.asp쉽습니다. 예를 들어 괄호없이 그룹화해야합니다.
Group by (page.page_namespace, pagelinks.pl_namespace) 올바른 것은 page.page_namespace, pagelinks.pl_namespace로 그룹입니다
인사말!!