저는 MySQL을 처음 접했으므로 잠재적 인 실수를 경험할 수 있습니다. 다른 멤버십 하위 유형과 각 하위 유형이 지정된 요일에 시간당 체크인 한 횟수를 표시하는 쿼리를 만들어야합니다. 여기까지 내가 지금까지 무엇을 생각해 냈습니다 :MySQL은 회원 당 1 시간 단위로 체크 인 횟수를 계산합니다.
SELECT
customers.CUSTOMER_CUSTOM_TYPE AS Subtype,
COUNT(CASE
WHEN checkins.POSTDATE BETWEEN '%17:00:00' AND '%17:59:59' THEN 1
ELSE 0
END) AS '5pm',
COUNT(CASE
WHEN checkins.POSTDATE BETWEEN '%18:00:00' AND '%18:59:59' THEN 1
ELSE 0
END) AS '6pm',
COUNT(CASE
WHEN checkins.POSTDATE BETWEEN '%19:00:00' AND '%19:59:59' THEN 1
ELSE 0
END) AS '7pm'
FROM
checkins,
customers
WHERE
checkins.CUSTOMER_ID = customers.CUSTOMER_ID
AND checkins.POSTDATE LIKE '2017-10-05%'
GROUP BY customers.CUSTOMER_CUSTOM_TYPE;
간결하게 3 시간을 포함했습니다. POSTDATE 변경에도 불구하고 매 시간마다 동일한 번호가 계속 표시됩니다. 테이블의 설정이 올바른지 : 다른 간단한 쿼리에서
MySQL Membership Subtype Checkin/Hour
, 나는 주어진 기간에 대한 고객의 CHECKIN_ID을 계산하여 체크 인을 계산했습니다. 고객은 체크인 할 때마다 서로 다른 고유 한 체크인 ID를 부여 받게됩니다. 올바르게 처리하고 있습니까? 더 간단한 방법이 있습니까? 어떤 도움을 주셔서 감사합니다!
'COUNT()'는 (SUM())이어야합니다. – Barmar