HAVING 2

구절의 순서와 페이징(서브쿼리 사용), 순위함수ROW_NUMBER() ,HAVING, 서브쿼리. 2021-08-10

우선 나는 HIT 칼럼을 기준으로 내림차순 정렬을 한 뒤에, ROWNUM을 붙이고 싶다. select ROWNUM, member.* from member where rownum between 1 and 5 order by hit desc; 그래서 이런 쿼리를 썼더니 결과는 정렬된 기준으로 ROWNUM이 붙은 것이 아닌, 정렬하기 전 기준으로 붙여져서 뒤죽박죽이 된다. 이런 문제를 해결할려면 어떻게 해야 할까? 두가지 방법이 있는데 그떄 페이징 할때 처럼 서브쿼리로 미리 정렬된 테이블에 ROWNUM을 붙이던가, 아니면 순서함수인 ROW_NUMBER()을 사용하면 된다. 서브쿼리를 이용해서 미리 줄세워 놓은 테이블에 ROWNUM을 붙이는 방법. select rownum, m.* from (select * f..

Programming/SQL 2021.08.10

SELECT (1) : 구절 순서와 ORDER BY 함수. 2021-08-05

우선 select 절에 올수 있는 함수는 총 5가지 이다. SELECT, FROM, WHERE, COUNTING BY, HAVING COUNT, ORDER BY 가 그것이다. 그리고 이런 함수들이 오는 '순서' 가 매우 중요하다. 이 순서를 지키지 않고 함수를 나열하면, 에러가 난다. 우선 각 키워드의 특징을 나열하겠다. from: 가공할 데이터의 테이블을 가져오는 역할을 한다. where: 가져온 테이블의 어떤 레코드(ROW)를 출력할지 조건에 따라(관계연산자,비교연산자,패턴연산자, 정규식 패턴을 이용) 선별한다. GROUP by: 집계함수 이다. 우선 어떤 기준에 따라 집계하고 예를 들면 납입한 날/시간/이름이 순차적으로 주어진 테이블에서 해당 납입횟수별로 집계하고 싶다면 이 함수를 쓰면 된다. 자세..

Programming/SQL 2021.08.05