table A
startday endday 월액1 월액2 월액3
20220101 20220331 500,000 600,000 700,000
20220401 20220831 400,000 500,000 600,000
이런 데이터가 있을때
2월부터 7월까지의 세 품목의 합계, 각각품목의 평균액이 나오게 할수있음?
위데이터로 예를 들자면
세품목의 합계는 ( 월액1의 값 50 + 50 + 40 + 40 + 40 + 40
월액2의 값 60+60+50+50+50+50
월액3의 값 70+70+60+60+60+60을 다더한값)
각각품목의 평균은 ( 월액1의 값 50+50+40+40+40+40
더한값인 260 ÷ 6 (2월~7월까지의 6달))인 433,332원이 나와야함
이따위거에 뭘 고수를 찾아. 초등학생 붙잡고 물어보면 학교에서 배웠기 때문에 잘 알려줄 거다.
순수 sql로 짜려면 고민 좀 해봐야할듯
순수 sql로 짜서 구현했는데 데이터 500건에 1년단위로 검색을 하면 3초이상걸려서 집단지성좀 얻으려고 글씀
대충 생각해봤는데 4가지 케이스합치면 될거 같네
여기서 쿼리짜기 귀찮은데 집가면 알려주는거 잊을거 같음
서치하려고 시작월 끝월을 입력받잖아 그러면 시작월 끝월 안쪽에 있는거면 endday에서 startday까지 달 수 * 월액1 일단 이 케이스 구하고 바깥쪽에 있으면 (endday랑 입력받은 시작월) * 월액1 이 있을거야
S이 서치고 P가 가격테이블이라고 치면 pssp psps spsp spps 이렇게 네가지 케이스가 나오잖아 mysql은 월차이 구하는 함수가 TIMESTAMPDIFF(MONTH, A, B) 이런 식으로 쓰던데 월차이 구해서 price 곱하고 sum해버리면 될듯
groupby
?
개쉽네