programing

ORA-01791: SELECTED 식이 아님

cafebook 2023. 3. 14. 21:53
반응형

ORA-01791: SELECTED 식이 아님

DB에서 세부 정보를 가져와야 합니다.내 코드에 무슨 문제라도 있나요?

SELECT DISTINCT FNAME, LNAME, MEMBERORG, DAYCOUNT, TIMESTAMP, COUNT(FNAME) AS total,(SELECT COUNT(*) FROM REPORT_VIEW_PAGE) AS tot
FROM REPORT_VIEW_PAGE 
WHERE ID = '68' AND TYPE = 'node'
GROUP BY FNAME, LNAME, MEMBERORG, DAYCOUNT, TIMESTAMP
ORDER BY TITLE ASC

이 경우 오류가 발생합니다.

ORA-01791: not a SELECTed expression
01791. 00000 -  "not a SELECTed expression"
*Cause:    
*Action:
Error at Line: 6 Column: 10

여기서의 문제는ORDER BY기둥.TITLE에서 선택되지 않았습니다.DISTINCT쿼리. 이후DISTINCT사용되고 있습니다.SELECT쿼리는 그룹화를 시도합니다.resultset선택한 열을 기준으로 합니다.

ORDER BY여기서 컬럼이 선택되지 않았습니다.또, 이 컬럼은, 일의성을 보증하지 않습니다.resultset그 때문에, 그것은 적용되지 않는다.ORDER BY.

를 추가합니다.title에 컬럼을 입력합니다.SELECT진술.사용할 때DISTINCT, 의 모든 컬럼이 필요합니다.ORDER BY당신의 안에서SELECT스테이트먼트도 참조해 주세요.

-- correct
SELECT DISTINCT a, b, c FROM tbl.x ORDER BY a,b;

-- incorrect
SELECT DISTINCT c FROM tbl.x ORDER BY a,b;

a그리고.b열을 선택해야 합니다.

SELECT DISTINCT FNAME, LNAME, MEMBERORG, DAYCOUNT, TIMESTAMP, total, tot
FROM
(
SELECT DISTINCT FNAME, LNAME, MEMBERORG, DAYCOUNT, TIMESTAMP, COUNT(FNAME) AS total,(SELECT COUNT(*) FROM REPORT_VIEW_PAGE) AS tot
FROM REPORT_VIEW_PAGE 
WHERE ID = '68' AND TYPE = 'node'
GROUP BY FNAME, LNAME, MEMBERORG, DAYCOUNT, TIMESTAMP
ORDER BY TITLE ASC
)

언급URL : https://stackoverflow.com/questions/31691470/ora-01791-not-a-selected-expression

반응형