반응형
SQL GROUP BY - COUNT() 함수 사용
저는 병원용 데이터베이스를 만드는 일을 해왔는데, 아무리 연구를 해도 고칠 수 없는 매우 답답한 오류를 겪고 있습니다.
제가 받은 오류는 다음과 같습니다.
1번 행의 오류: ORA-00979: 식에 의한 그룹이 아닙니다.
값을 삽입하는 내 코드의 구조는 다음과 같습니다.
SELECT CONSULTANT.S_NO, DOCTOR.D_NAME, CONSULTANT.SPEC,
PATIENT.P_ID, PATIENT.P_NAME, COUNT(CONSULTANT.P_ID)
FROM PATIENT, CONSULTANT, DOCTOR
WHERE PATIENT.P_ID = CONSULTANT.P_ID
AND CONSULTANT.S_NO = DOCTOR.S_NO
GROUP BY CONSULTANT.S_NO;
그리고 내 테이블의 구조는 다음과 같습니다.
CREATE TABLE PATIENT (
P_ID NUMBER NOT NULL,
P_NAME CHAR(20),
ADDRESS VARCHAR(20),
DOB DATE,
WARD_NO NUMBER NOT NULL,
C_S_NO NUMBER NOT NULL,
CONSTRAINT PK_PATIENT PRIMARY KEY(P_ID)
);
CREATE TABLE DOCTOR (
S_NO NUMBER NOT NULL,
D_NAME CHAR(20),
APP_DATE DATE,
CONSTRAINT PK_DOC PRIMARY KEY(S_NO)
);
CREATE TABLE CONSULTANT (
S_NO NUMBER NOT NULL,
P_ID NUMBER NOT NULL,
SPEC CHAR(20),
T_CODE VARCHAR(20) NOT NULL,
CONSTRAINT PK_CDOC PRIMARY KEY(S_NO)
);
이 딜레마를 해결하는 데 도움을 줄 수 있다면 정말 감사하겠습니다.
aggregate 함수를 사용하고 있으므로 필드는SELECT
집계되지 않는 목록은GROUP BY
:
SELECT CONSULTANT.S_NO, DOCTOR.D_NAME, CONSULTANT.SPEC,
PATIENT.P_ID, PATIENT.P_NAME, COUNT(CONSULTANT.P_ID)
FROM PATIENT, CONSULTANT, DOCTOR
WHERE PATIENT.P_ID = CONSULTANT.P_ID
AND CONSULTANT.S_NO = DOCTOR.S_NO
GROUP BY CONSULTANT.S_NO, DOCTOR.D_NAME, CONSULTANT.SPEC, PATIENT.P_ID, PATIENT.P_NAME
참고로 쉼표로 구분된 테이블 목록 대신 ANSI JOIN 구문을 사용합니다.
SELECT c.S_NO, d.D_NAME, c.SPEC, p.P_ID, p.P_NAME, COUNT(c.P_ID)
FROM PATIENT p
INNER JOIN CONSULTANT c
ON p.P_ID = c.P_ID
INNER JOIN DOCTOR d
ON c.S_NO = d.S_NO
GROUP BY c.S_NO, d.D_NAME, c.SPEC, p.P_ID, p.P_NAME
이제 추가 필드를 에 추가해야 합니다.GROUP BY
이것은 조정할 수 있습니다.COUNT()
예상하지 못한 숫자의 합계입니다.따라서 다음과 같이 총 카운트를 얻으려면 하위 쿼리를 통합해야 할 수도 있습니다.
SELECT c1.S_NO, d.D_NAME, c1.SPEC, p.P_ID, p.P_NAME, c2.Count_P_ID
FROM PATIENT p
INNER JOIN CONSULTANT c1
ON p.P_ID = c1.P_ID
INNER JOIN
(
select COUNT(c.P_ID) Count_P_ID, S_NO
from CONSULTANT c
group by S_NO
) c2
ON c1.S_NO = c2.S_NO
INNER JOIN DOCTOR d
ON c1.S_NO = d.S_NO
이를 통해 다음을 수행할 수 있습니다.GROUP BY
당신이 처음에 원했던 한 분야.
언급URL : https://stackoverflow.com/questions/13683663/sql-group-by-using-count-function
반응형
'programing' 카테고리의 다른 글
Angular js 지시어의 post link vs pre link (0) | 2023.10.17 |
---|---|
워드프레스 웹사이트에서 AJAX를 호출할 때 API키를 확보하는 방법은? (0) | 2023.10.17 |
자바스크립트의 루프 타이머 (0) | 2023.10.17 |
DOM-Container를 통해 Highchart 차트에 액세스하려면 어떻게 해야 합니까? (0) | 2023.10.17 |
CSS를 (인덱스)로 변경하시겠습니까? (0) | 2023.10.17 |