SQL - TOP, LIMIT, ROWNUM, DISTINCT, COUNT

박영준·2023년 6월 26일
0

DB

목록 보기
20/41
  • SELECT 로 가져올 레코드의 개수를 지정할 때 사용

TOP

SQL Server / MS Access 에서

문법

SELECT TOP 레코드개수 |PERCENTFROM Customers
```드이름1, 필드이름2, ...
FROM 테이블이름
  • 레코드의 수가 아주 클 때 사용하면 유용
    • 단, 모든 데이터베이스 시스템이 TOP 절을 지원하지는 X

예시 1 : Customer 테이블의 레코드를 3개까지 가져온다.

SELECT TOP 3 *
FROM Customers;

예시 2 : Customers 테이블의 상위 50% 레코드들을 가져온다.

SELECT TOP 50 PERCENT *
FROM Customers
  • TOP 절에는 PERCENT 옵션을 줄 수 있다.

LIMIT - 일부 데이터만 가져오기

MySQL 에서

문법

SELECT 필드이름1, 필드이름2, ...
FROM 테이블이름
WHERE 조건
LIMIT 레코드개수;

예시 1

select * from orders 
where payment_method = 'kakaopay'
limit 5
  • 일부분만 보고 싶은데, 모든 데이터를 다 불러오면 시간이 오래 걸린다.

예시 2 : Customer 테이블의 레코드를 3개까지 가져온다.

SELECT * FROM Customers LIMIT 3;

ROWNUM

Oracle 에서

문법

SELECT 필드이름1, 필드이름2, ...
FROM 테이블이름
WHERE ROWNUM <= 레코드개수;

예시 : Customer 테이블의 레코드를 3개까지 가져온다.

SELECT * FROM Customers
WHERE ROWNUM <= 3;

DISTINCT - 중복 데이터는 제외하고 가져오기

문법

SELECT DISTINCT 필드이름1, 필드이름2 ... FROM 테이블이름;
  • 필드에 포함된 데이터들 중 동일한 값이 여러개 있을 경우 하나만 대표로 가져온다 (고유한 값만을 가져올 때 사용)

예시

select distinct(payment_method) from orders

COUNT - 몇 개인지 숫자 세보기

예시 1

select count(*) from orders
  • ( * ) 로 전체 숫자를 센다

예시 2 : Gmail을 사용하는 2020/07/12~13에 가입한 유저의 수

select count(*) from users
where created_at between "2020-07-12" and "2020-07-14"
and email like "%gmail.com";
  • count 를 씌워주기만 하면 된다.

DISTINCT + COUNT

SELECT count(distinct(name)) from users

profile
개발자로 거듭나기!

0개의 댓글