목록프로그래밍 (408)
쌓고 쌓다
HAVING 절 GROUP BY절에 의해 생성된 그룹을 대상으로 조건을 적용한다. ( WHERE절은 FROM에 명시된 테이블을 대상으로 조건을 적용한다. ) SELECT column, group function(column) FROM table [WHERE condition] [GROUP BY grou_by_expression] [HAVING group_condition] [ORDER BY column] 순서 1. 테이블에 WHERE 절의 조건을 만족하는 행 집합 생성 2. 위의 행 집합을 GROUP BY 절에 의해 그룹화 3. HAVING 절에 의해 조건을 만족하는 그룹을 선택 EX) 학생 수가 4명 이상인 학년에 대해 학년, 학생 수 출력 SELECT grade, COUNT(*) FROM studen..
GROUPING SETS? GROUP BY절에서 그룹 조건을 여러 개 지정할 수 있다. 각 그룹 조건에 대해 GROUP BY한 결과를 UNION ALL한 결과와 일치 GROUPING SETS절 GROUP BY절 GROUP BY GROUPING SETS(a, b, c) GROUP BY a UNION ALL GROUP BY b UNION ALL GROUP BY c GROUP BY GROUPING SETS(a, b, (b,c)) GROUP BY a UNION ALL GROUP BY b UNION ALL GROUP BY b, c GROUP BY GROUPING SETS(a, ROLLUP(b,c)) GROUP BY a UNION ALL GROUP BY ROLLUP(b, c) GROUP BY GROUPING SET..
ROLLUP 예제 1) 소속 학과별로 교수 급여 합계와 모든 학과 교수들의 합계를 출력 SELECT deptno, SUM(sal) FROM professor GROUP BY ROLLUP(deptno) ORDER BY deptno; ROLLUP(deptno)의 결과 1. (deptno) 2. 전체 합계 2) 학과 및 직급별 교수 수, 학과별 교수 수, 전체 교수 수를 출력하라 SELECT deptno, position, COUNT(*) FROM professor GROUP BY ROLLUP(deptno, position) ORDER BY deptno; ROLLUP(deptno, position)의 결과 1. (deptno, position) 2. (deptno) 3. 전체 합계 ROLLUP(A, B, C)..
3. N을 입력받고 1~N까지의 곱을 구하기. (원래 1부터100까지를 구하는건데 수정함) let output=1; let input=prompt('수를 입력하세요.'); for(let i=1;i
for in 반복문 for (const 반복 변수 in 배열 또는 객체) { 문장 } 반복 변수에 요소의 인덱스가 들어간다. for in 코드는 내부의 요소를 사용하려면 arr[i] 형태로 사용해야한다. 안정적으로 쓰기엔 위험한 반복문이라 for of 반복문과 for 반복문을 활용한다. 반복 변수는 const를 쓴다. (ex) const arr = ['아침', '점심', '저녁'] for(const i in arr) { console.log(`${i}번째 값: ${arr[i]}`) } for of 반복문 for(const 반복 변수 of 배열 또는 객체){ 문장 } 반복 변수에 요소의 값이 들어간다. for in 반복문은 arr[i]로 요소에 접근했지만 for of 반복문은 요소의 값을 반복할때 안정적이..
배열 [요소, 요소, 요소, ..., 요소] 내부의 값을 쉼표(,)로 구분한다. 배열 내부의 요소들은 어떠한 자료형도 가능하며 모두 일치할 필요가 없다. 배열 요소 접근 배열이름[인덱스] 배열 요소 개수 배열이름.length (+ 문자열의 길이와 동일하게 사용한다.) 배열 요소 추가(push) 배열 뒷부분에 요소를 추가할때 push 함수를 사용한다. 배열이름.push(요소) 배열 요소 추가(index) 자바스크립트에서 배열의 길이는 고정되어 있지않다. 요소 3개를 가질 수 있는 배열에 10번째 인덱스에 요소를 추가할 수 있다. 이때, 4~9번째 인덱스에는 아무것도 없는 empty가 된다. (+ 이 원리를 이용하여 배열의 길이를 이용하여 마지막 위치에 요소를 추가할 수 있다.) 배열 요소 제거(인덱스) 배..
그룹 함수 테이블의 전체 행을 하나 이상의 칼럼으로 그룹화하여 각 그룹의 결과를 출력 SELECT column, group function(column) FROM table [WHERE condition] [GROUP BY group_by_column] [HAVING group_condition] GROUP BY : group_by_column(칼럼)을 기준으로 그룹화함 HAVING : 그룹화하여 생성된 그룹에 조건 추가. 그룹 함수의 종류 종류 의미 COUNT 행의 개수 출력 MAX NULL을 제외한 최대 값 MIN NULL을 제외한 최소값 SUM NULL을 제외한 합계 AVG NULL을 제외한 평균 값 STDDEV NULL을 제외한 표준편차 VARIANCE NULL을 제외한 분산 값 GROUPING ..
split '문자열(string)'.split(separator, limit) separator 구분 기호를 뜻한다. 즉 뭘로 잘라내 배열을 만들 것인지를 정함. 필수는 아니다. 입력하지 않으면 문자열 전체를 그냥 배열에 한번 담아 1개의 배열의 크기를 갖는다. limit 몇개의 원소까지 만들 것인가? 필수가 아니다. 예제(1) const alphabet = 'A/B/C' const arr = alphabet.split('/') alphabet에 문자열 A/B/C가 담겨 있다. 이것을 '/'로 잘라내 배열을 만들었다. 아래의 실행 결과를 보자. arr.length arr[0] arr[1] arr[2] 실행 결과 예제(2) limit를 사용해보자 위의 예제를 그대로 사용해 1개의 limit로 제한해 spl..