我需要获取用户记录的MySQL结果,该记录具有“注册”日期,该日期发生在某年的某个季度之前。
例如,要获取数据(用户数,在2018年第三季度之前注册),我会执行以下请求:
SELECT count(userid) AS value
FROM users
WHERE QUARTER(registered) <= "3" && YEAR(registered) <= "2018"
但是,此请求给我的预期结果不理想(价值应低得多,看起来我仅获得2018年第三季度的结果,而没有获得任何年份的前几年的值)。如果我删除季度并仅检查Year之前的数据-这可以很好地工作并显示我使用的每年的正确结果。
为什么会发生这种情况以及如何通过Quarter正确获取价值?
答案 0 :(得分:2)
您可以使用以下解决方案:
SELECT COUNT(userid) AS value
FROM users
WHERE YEAR(registered) < 2018 OR (
YEAR(registered) = 2018 AND QUARTER(registered) <= 3
)
使用当前的SELECT
,您将仅获得每年(2018年或更早)在第三季度或更早注册的所有用户。但是您可以计算2018年之前的年份的所有用户(在这种情况下该季度无关紧要)和当年的所有用户,但在指定的季度或更早的时间内。