출처 :
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 |
댓글