본문 바로가기
프로그래밍/DB & Redis

[mssql] 조회하기 Where, Having

by 뽀도 2016. 7. 20.

출처 :

https://msdn.microsoft.com/ko-kr/library/ms188047.aspx

https://msdn.microsoft.com/ko-kr/library/ms180199.aspx

 

 

 

* Select 할때 Where와 Having을 사용한 조회

 

* WHERE

- 쿼리가 반환하는 행에 대한 검색 조건을 지정

 

* Having

- 그룹 또는 집계에 대한 검색 조건을 지정합니다. HAVING은 SELECT 문하고만 사용될 수 있으며 일반적으로 GROUP BY 절에 사용

 

 

일단 쿼리를 하기 위해 테이블을 만들고 데이터를 삽입

 

 

* create Table

-------------------------------------------------

create Table PurchaseLog(
 logNo int IDENTITY(1,1)   PRIMARY KEY,
 productId nvarchar(50) NOT Null,
 logTime dateTime NOT Null,
 userName nvarchar(50) NOT Null
)

-------------------------------------------------

 

*Insert

-------------------------------------------------
Insert into PurchaseLog
values ('100상품권','2016-07-20','홍길동');

Insert into PurchaseLog
values ('10상품권','2016-07-20','이순신');

Insert into PurchaseLog
values ('5상품권','2016-07-18','김둘리');

Insert into PurchaseLog
values ('5상품권','2016-07-19','최또치');

Insert into PurchaseLog
values ('5상품권','2016-07-18','마이콜');

Insert into PurchaseLog
values ('10상품권','2016-07-19','안젤라');

 

-------------------------------------------------

 

* Select

-------------------------------------------------

select * from PurchaseLog;

-------------------------------------------------

 

* 결과

 

 

 

 

 

 

*Where 조건

 

조건 : 7월 18 ~ 20일까지 각 사용권의 판매량 조회

-------------------------------------------------

select ProductId,count(ProductId) as '구매횟수'
from PurchaseLog
where  LogTime >=cast('2016-07-18' as dateTime) and LogTime <= cast('2016-07-21' as dateTime)
group by ProductId

-------------------------------------------------

 

 

* Having 조건

 

조건 : 5상품권 판매량 조회

-------------------------------------------------

 

select ProductId,count(ProductId) as '구매횟수'
from PurchaseLog
group by ProductId
having ProductId like '5상품권'

-------------------------------------------------

 

 

 

 

- 아 .. having의 별로 좋은예는 아닌것 같지만, 데이터가 많을 경우에는 유용하게 쓰일수 있을거 같음..

- 단순 count만 알고 싶다면 아래와 같은 쿼리도 있음.

 

select count(*) as '구매횟수'
from PurchaseLog
where ProductId like '5상품권'

 

 

 

 

 

 

반응형

'프로그래밍 > DB & Redis' 카테고리의 다른 글

제약조건 Constraint  (0) 2016.08.08
[MSSQL] 저장 프로시저  (0) 2016.08.05
시퀀스  (0) 2016.07.20
[MSSQL] isNull 함수  (0) 2016.07.20
[mssql] JOIN 쿼리 - Cross, Inner, left outer, right outer, full outer  (0) 2016.07.20

댓글