2014-06-09 4 views
0

제품 판매를 설명하는 데이터를 보유하고있는 .csv 파일이 있다고 해봅시다. 지금 나는 매달 판매량의 붕괴를 원한다고 말한다. 내가 JAN2005, FEB2005 ... JAN2008, FEB2008 ... NOV2012, DEC2012에서 얼마나 많은 주문을 받았는지 알고 싶습니다.SQL을 사용하여 데이터 계산

내가 생각할 수있는 아주 간단한 방법은 이것들을 하나씩 계산하는 것입니다. (BTW 내 쿼리를 실행 LOGPARSER을 사용하고 있습니다)이 할 수있는 현명한 방법이 있는지

logparser -i:csv -o:csv "SELECT COUNT(*) AS NumberOfSales INTO 'C:\Users\blah.csv' FROM 'C:\User\whatever.csv' WHERE OrderReceiveddate LIKE '%JAN2005%' 

내 질문입니다. 내 말은, 몇 달을 반복해서 변경하고 쿼리를 실행하는 대신 하나의 결과를 생성 할 수있는 쿼리 하나를 모두 작성할 수 있습니까?

+0

네, 훨씬 똑똑한 방법이 있습니다 : GROUP BY. – duffymo

답변

0

예.

명령문에 group by 절을 추가하면 sql은 그룹의 각 고유 값에 대해 별도의 수를 반환합니다.

당신은 쓰기 그래서 경우 :

SELECT OrderReceiveddate, COUNT(*) AS NumberOfSales INTO 'C:\Users\blah.csv' 
FROM `'C:\User\whatever.csv' GROUP BY OrderReceiveddate` 

당신은 같은 결과를 얻을 것이다 :

JAN2005 12

FEB2005 19

OrderReceiveDate 가정 21

0

이 날짜입니다 MAR2005을, 당신은 년과 월을 갖도록 날짜를 포맷 할 것입니다. 차 후 집계 :

SELECT date_format(OrderReceiveddate, '%Y-%m') as YYYYMM, COUNT(*) AS NumberOfSales 
INTO 'C:\Users\blah.csv' 
FROM 'C:\User\whatever.csv' 
WHERE OrderReceiveddate >= '2015-01-01' 
GROUP BY date_format(OrderReceiveddate, '%Y-%m') 
ORDER BY YYYYMM 

당신은 날짜 열을 like를 사용하지 않습니다. like에는 문자열 인수가 필요합니다. 날짜 함수를 대신 사용하십시오.

+0

오류가 발생합니다. "유효한 을 찾을 수 없습니다 : 'DATE_FORMAT (Orderreceiveddate ...)'. –

관련 문제