>

질문 : 매년 한 달에 몇 명의 고객이 활동하고 있습니까 (예 : ..., 2005 년 6 월, 2005 년 7 월, ..., 2006 년 6 월 등)? 해당 월에 활성을 하나 이상 대여 한 것으로 정의합니다.

쿼리를 만들었지 만 약간 수정해야합니다. 다음은 내 쿼리입니다.

SELECT rental_date, to_char(rental_date, 'Mon YYYY')
FROM rental
ORDER BY rental_date desc

customer_id, to_char (rental_date, 'Mon YYYY')로 그룹화하여 임대 수를 반환하는 "WITH"를 사용하려고합니다

ER 다이어그램은 다음과 같습니다

감사합니다!

  • 답변 # 1

    월에 레코드가있는 고유 한 customer_id 수 :

    SELECT to_char(rental_date, 'Mon YYYY'), COUNT(DISTINCT customer_id)
    FROM rental
    GROUP BY to_char(rental_date, 'Mon YYYY')
    
    

    한 고객이 3 번의 임대를 수행 한 경우, 수 (*)는 3이 되겠지만 DISTINCT가 필요합니다. 그러나 "대여가 수행 된 횟수"가 아니라 "활동중인 고객 수"(응답 : 1)

  • 답변 # 2

    GROUP BY 가 필요합니다  와이즈 비즈  그리고 to_char(rental_date, 'YYYY-MM')  동일하게 :

    order by desc
    
    

    이 형식은 SELECT to_char(rental_date, 'YYYY-MM') AS monthofyear, COUNT(DISTINCT customer_id) AS activecounter FROM rentals GROUP BY (to_char(rental_date, 'YYYY-MM')) ORDER BY (to_char(rental_date, 'YYYY-MM')) DESC  올바르게 정렬 할 수 있습니다.

    YYYY-MM

  • 이전 javascript - 지연을 방지하기 위해 무거운 프로그램이 백그라운드에서 실행되는 동안 "계산 중"메시지를 표시하는 방법
  • 다음 javascript - 클릭 한 버튼의 읽기 값을 반응