반응형

TOP, LIMIT, ROWNUM


https://www.w3schools.com/sql/sql_top.asp


SQL Server / MS Access Syntax:

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;



MySQL Syntax:

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;



Oracle Syntax:

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;



위와 같이 여러 문법에 따라 다르게 쓰이는 SELECT TOP 구문이다.


SELECT TOP 3 * FROM Customers


Customers 테이블에서 상위 3개를 추출한다.



SELECT TOP 3 Address, City FROM Customers;


Customers의 상위 3개의 Address와 City를 추출한다.



SELECT TOP 3 * FROM Customers WHERE Country='Germany';


Germany에 해당하는 상위 3개를 추출한다.


        

SELECT TOP 50 PERCENT * FROM Categories;


Categories 테이블의 50%를 추출한다.



SELECT * FROM Customers LIMIT 3;


LIMIT 구문을 이용하여 상위 3개를 추출한다.



SELECT * FROM Customers WHERE Country='Germany' LIMIT 3;


Germany에 해당하는 상위 3개를 추출한다. 



SELECT * FROM Customers
WHERE ROWNUM <= 3;


ROWNUM을 이용하여 상위 3개를 추출한다.



SELECT * FROM Customers
WHERE Country='Germany' AND ROWNUM <= 3;


Germany에 해당하는 상위 3개를 추출한다.





MIN, MAX


https://www.w3schools.com/sql/sql_min_max.asp



MIN() Syntax

SELECT MIN(column_name)
FROM table_name
WHERE condition;


테이블의 조건에 해당하는 값 중 column_name에서의 최솟값을 찾아낸다


SELECT MIN(PostalCode)
FROM Customers
WHERE Country='Germany'


Customers 테이블에서 Country가 Germany인 값들 중 PostalCode가 최솟값인 것을 찾아낸다.



SELECT MIN(Country) AS SmallestPostalCode
FROM Customers;


SmallestPostalCode 라는 또다른 필드명으로 설정해줄 수 있다.



MAX() Syntax

SELECT MAX(column_name)
FROM table_name
WHERE condition;


테이블의 조건에 해당하는 값 중 column_name에서의 최댓값을 찾아낸다.


SELECT MAX(PostalCode)
FROM Customers
WHERE Country='Germany'


Customers 테이블에서 Country가 Germany인 값들 중 PostalCode가 최댓값인 것을 찾아낸다.



SELECT MAX(Country) AS LargestPostalCode
FROM Customers;


LargestPostalCode 라는 또다른 필드명으로 설정해줄 수 있다.




COUNT, AVG, SUM


https://www.w3schools.com/sql/sql_count_avg_sum.asp



COUNT() Syntax

SELECT COUNT(column_name)
FROM table_name
WHERE condition;


해당 조건에 만족하는 것이 몇개가 있는지 출력해준다.



SELECT COUNT(City)
FROM Customers
WHERE Country='Mexico' AND CustomerID <= 50


Country가 Mexico이고 CustomerID가 50이하인 것의 개수를 출력해준다.




AVG() Syntax

SELECT AVG(column_name)
FROM table_name
WHERE condition;


해당 조건에 만족하는 것의 평균을 출력해준다.


SELECT AVG(Quantity)
FROM OrderDetails


OrderDetails 테이블의 Quantity 필드의 평균을 구해준다.



SUM() Syntax

SELECT SUM(column_name)
FROM table_name
WHERE condition;


해당 조건에 만족하는 것의 총합을 출력해준다.



SELECT SUM(Quantity)
FROM OrderDetails
WHERE OrderID='10248'


OrderDetails 테이블의 Quantity 레코드의 합을 구할건데 OrderID가 10248인 것들의 합을 구한다.






반응형