gpt4 book ai didi

php - MySQL - 计算 WHERE 用户数(过去 30 天,过去一年,所有时间)

转载 作者:行者123 更新时间:2023-12-01 00:27:09 33 4
gpt4 key购买 nike

我正在尝试进行查询以检查客户表并返回过去 30 天、过去 365 天和所有时间具有特定值的用户数。

所有时间的计数很简单:

$stmt = $conn->prepare("SELECT count(id) AS count FROM clients WHERE referred =  :refid");
$stmt->bindParam(':refid', $refid);
$stmt->execute();
$totalreferrals = $stmt->fetchAll();

表:

id |   signup   | reffered |
----------------------------
2 | 2012-08-24 | 14 |
----------------------------
3 | 2011-10-13 | 14 |

我不确定我是否可以使用 UNION 组合查询,或者我是否应该只进行三个不同的查询。有帮助吗?

最佳答案

我想你希望它在列中而不是在行中,如果是这样的话

SELECT  COUNT(CASE WHEN DATEDIFF(CURDATE(),signup) <= 30 THEN id
ELSE NULL
END) AS Last30days ,
COUNT(CASE WHEN DATEDIFF(CURDATE(), signup) <= 365 THEN id
ELSE NULL
END) AS Last365Days ,
COUNT(*) AS Alltime
FROM Table1
WHERE reffered = 14

SQLFiddle http://sqlfiddle.com/#!2/6e6ce/2

关于php - MySQL - 计算 WHERE 用户数(过去 30 天,过去一年,所有时间),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12539229/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com