728x90

 기본 환경: IDE: SQL Developer, Language: Oracle SQL

 

 

발생 Error

Oracle SQL로 다음 Source Code를 실행할 경우,

⚠️ 다음과 같은 Error 발생

ORA-00937: 단일 그룹의 그룹 함수가 아닙니다
00937. 00000 -  "not a single-group group function"

 

 

발생 원인

DEPARTMENT_ID로 GROUP화를 진행하였으므로 그룹화된 DEPARTMENT_ID가 출력되야함

그러나, 그룹함수 MAX 사용 시, 1개의 RECORD만 RETURN되므로 DEPARTMENT_ID RECORD 수가 많아서 오류 발생

 

 

해결 방법

DEPARTMENT_ID 삭제

그룹함수 MAX에 따른 DEPARTMENT_ID값을 RETURN 받고 싶으면 그룹에 대한 조건절인 HAVING을 사용

-> 도출되는 DEPARTMENT_ID가 1개만 도출되도록 함

 

⭐ 조건절 작성 순서: SELECT → FROM → WHERE → GROUP BY → HAVING → ORDER BY

 

728x90
728x90

이 글은 뉴렉쳐 오라클 데이터베이스 SQL 강의 수강하며 정리한 글입니다.

 

 

조회수가 0, 1, 2인 게시글을 조회하시오.

 

조회수가 0, 2, 7인 게시글을 조회하시오.

 

조회수가 0, 2, 7이 아닌 게시글을 조회하시오.

 

 

소스 코드

🔗 HJ0216/TIL/OracleSQL

 
 
728x90
728x90

 기본 환경: IDE: SQL Developer, Language: Oracle SQL

 

 

발생 Error

Oracle SQL로 다음 Source Code를 실행할 경우,

⚠️ 다음과 같은 Error 발생

오류 보고 -
ORA-01400: NULL을 ("C##JAVA"."PBOARD"."SEQ") 안에 삽입할 수 없습니다

 

 

발생 원인

PRIMARY KEY인 SQL에 대한 NULL값 입력이 허용되지 않음

 

 

해결 방법

1. PRIMARY KEY VALUE 입력

 

2. SEQ 값을 직접 부여하는 방법 대신 TABLE 편집에서 열 시퀀스 선택

 

728x90
728x90

1.

/etc/passwd: 소유권 변경 시 참조 파일

 

 

2.

/bin/su: setuid, 일반 user가 su명령어를 사용해서 root의 권한을 획득할 수 있음

/dev/null: 항상 비워져 있으며, 해당 파일로 전송된 데이터는 버려짐

2> /dev/null: 표준 에러를 출력하지 않고 null 파일에 담아 버리기

/bin/mount: mount 명령어가 위치한 곳

 

 

4. 

디스크 쿼터 설정 순서

quotacheck: quota 설정을 위해 필요한 quota 파일 생성

edquota

quotaon

repquota

 

 

5. 특수권한

SetUID: 4, SetGID: 2, StickyBit: 1

 

 

6.

umount > eject: 보조기억장치, usb 등을 꺼낼 때 사용

fsck: file system check, 파일 시스템을 검사하고 수리하는 명령어

e2fsck: fsck의 확장 명령

 

 

7.

blkid: UUID 조회

 

 

9.

/lost+found: fsck에서 사용하는 dir로 손상된 dir이나 파일 수정을 위한 임시 dir

 

 

10.

/etc/passwd: 로그인 시 정보

/etc/login.defs: 사용자 계정의 설정과 관련된 기본 값을 정의한 파일

 

 

14. history 명령어

!1: 명령어 1번 실행

!!: 직전 입력 명령어 재실행

 

 

15.

/etc/profile: 환경변수

/etc/bashrc: alias, function

 

 

16. 명령어 chsh

-s: 지정하는 shell을 앞으로 사용할 로그인 shell로 변경

-l: 사용힐 수 있는 shell 나열

 

 

19.

NI값 범위: -20 ~ 19

 

 

20. Signal

1 / SIGHUP / 로그아웃과 같이 터미널 연결 종료 시 보내지는 시그널

2 / SIGINT / ctrl c, 키보드에 입력된 인터럽트 시그널로 실행 중지

3 / SIGQUIT / ctrl \, 종료

9 / SIGKILL / 강제 종료

15 / SIGTERM / 정상 종료시키는 kill의 기본 시그널

19 / SIGSTOP / 터미널에서 입력된 정지 시그널

20 / SIGTSTP / ctrl z, 실행 정지 후 재실행을 위한 대기 시그널

 

 

21.

standalone: 항상 메모리에 상주

inetd: 요청 시에만 프로세스 실행

 

 

22.

init: 리눅스 부팅 시작 시, 커널이 발생시키는 최초의 프로세스(PID=1)

 

 

26.

kill -1 PID -- 프로세스 재시작
kill -9 PID -- 프로세스 강제 종료

 

 

27.

fg 명령어

fg %PID
fg PID
fg -- 현재 수행중인 작업을 fg로 전환

 

bg 명령어

-- bg로 전환하기 전 작업 일시 중지: ctrl z
bg %PID
bg PID
bg -- 현재 수행중인 작업을 fg로 전환
명령어& -- bg로 실행

 

 

29.

g(graphic)edit: X-window

 

 

30. vi editor

-R: 읽기 모드

 

 

32.

pico: Aboil Kasasar > nano: GNU

 

 

34.vi editor

명령모드 > 입력모드: a, i, o

 

 

37. yum 명령어

yum install
yum remove
yum history
yum info

 

 

38. tar 명령어

c: create, tar 파일로 묶기

r: append, 기존 tar 파일에 파일 추가

t: list, tar 파일 목록 출력

x: tar 파일을 풀기

f: 기본 옵션, 대상 tar archive 지정

 

 

39. rpm 명령어

-i: install

-q: question

-qf: question find, 설치된 파일이 어느 패키지에 포함된 것인지 확인

-ql: question list, 특정 pkg에 포함된 파일 확인

-qi: question information, 설치된 pkg 상세정보 출력

 

 

40.

압축 효율: xz(.xz, J) > bzip2(.bz2, j) > gzip(.gz, z) > compress(.Z)

 

728x90
728x90

 

 

2477번: 참외밭

첫 번째 줄에 1m2의 넓이에 자라는 참외의 개수를 나타내는 양의 정수 K (1 ≤ K ≤ 20)가 주어진다. 참외밭을 나타내는 육각형의 임의의 한 꼭짓점에서 출발하여 반시계방향으로 둘레를 돌면서 지

www.acmicpc.net

 

Language: Java

 

⭐ 전체에서 지나가지 않은 참외밭 넓이를 제거하는 방향으로 진행

: 최소값을 구해서 제거해주었지만, 최소값이 아닐 경우에도 지나가지 않을 수 있으므로 오답

 

😱 반례

1
2 5
3 5
1 1
4 2
1 4
4 3

 

 

소스 코드

🔗 HJ0216/TIL

728x90