2017-11-13 5 views
1

나는 명령에 대한 모델을 가진 laravel 응용 프로그램을 가지고 있습니다.Laravel DB :: Raw with Average

모델은 포함 : 내가 기간에 걸쳐 평균 일일 총 판매 값을 반환 찾고 있어요

id 
order_date 
value 

.

예를 들어,

1 | 2017-11-01 | 10.00 
2 | 2017-11-01 | 10.00 
3 | 2017-11-01 | 11.00 
4 | 2017-11-02 | 14.00 
5 | 2017-11-03 | 1.00 
6 | 2017-11-03 | 18.00 
7 | 2017-11-03 | 10.00 
8 | 2017-11-03 | 10.00 
9 | 2017-11-04 | 105.00 
10 | 2017-11-04 | 10.00 

내가 총 매일의 값하지만 일에 걸쳐 다음 평균을 반환 찾고 있어요 샘플 데이터 세트 아래를 참조하십시오. 위의 대답에 결과

1/11/2017 = 31 
2/11/2017 = 14 
3/11/2017 = 39 
4/11/2017 = 115 

: 무시하고이 순서를 평균하고 있습니다에 의해 나는 다음과 같은 웅변 쿼리를 시도했지만 올바른 값을 가져 오는 데 실패했습니다 49.75

는 거의 그룹처럼 가치가 아니라 하루 중 총 주문 값보다 낮습니까?

답변

0

눈치 채 셨던 것처럼 현재 쿼리는 일수 대신 날짜 별 값을 평균화합니다. 당신은 몇 가지 부문 사용하는 쿼리를 조정할해야합니다 :

$avgValue = Order::whereBetween('order_date',array(Carbon::now()->startOfMonth(), Carbon::now()->endOfMonth())) 
->selectRaw('SUM(value)/COUNT(DISTINCT order_date) AS order_average') 
->first(); 

하는 당신은으로 값을 얻을 수 있어야합니다을 $avgValue->order_average