我需要获得用户记录的MySQL结果与“注册”日期发生在某一季度之前的某一年。
例如,要获取数据(用户数,在Q3 2018之前注册),我执行以下请求:
SELECT count(userid) AS value
FROM users
WHERE QUARTER(registered) <= "3" && YEAR(registered) <= "2018"然而,这个请求给了我不期望的结果(值比它应该的要低得多,看起来我只得到了2018年的Q3的结果,而没有前几年任何季度的值)。如果我删除季度,只检查年份之前的数据-这很好用,并显示我使用的每一年的正确结果。
为什么会发生这种情况,以及如何正确获取Quarter的价值?
发布于 2019-02-21 18:39:46
您可以使用以下解决方案:
SELECT COUNT(userid) AS value
FROM users
WHERE YEAR(registered) < 2018 OR (
YEAR(registered) = 2018 AND QUARTER(registered) <= 3
)使用您当前的SELECT,您只能获得每年第三季度或更早注册的所有用户(2018年及更早)。但您可以统计2018年之前的所有用户(在这种情况下,季度并不重要),以及指定季度或更早的当前年份的所有用户。
https://stackoverflow.com/questions/54804953
复制相似问题