我是MySQL的新手,请耐心等待我的潜在问题。我需要创建一个查询来显示我们不同的成员子类型以及每个子类型在给定日期每小时签入的次数。这是我到目前为止:MySQL计数每个会员每个小时的签到次数
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;
为简洁起见,我只包括三个小时。尽管POSTDATE发生变化,但我仍然每小时都会收到相同的数字。该表的设置是正确的:
MySQL Membership Subtype Checkin/Hour
在其他简单的查询,我对于给定的时间内计算客户的CHECKIN_ID数签入。每次登记时,客户都会得到不同的唯一登记ID。我是否正确地进行了此操作?有一种更简单的方法吗?任何帮助表示赞赏!
'COUNT()'应该是'SUM()'。 – Barmar