gpt4 book ai didi

mysql - 我可以使用条件 where 语句从 mysql 获得两个计数吗?

转载 作者:行者123 更新时间:2023-11-29 06:57:40 25 4
gpt4 key购买 nike

我目前正在获取基于时间戳的用户访问计数,但我还想包括访问总数。这可能与一个 MySQL 语句有关吗?这是我当前的查询,它只返回一个基于时间戳的计数:

$sql = "SELECT count(*) as visitors_count FROM profile_visits
LEFT JOIN users on users.user_id=profile_visits.user_id
LEFT JOIN profile_info ON profile_info.user_id = users.user_id
WHERE profile_user_id=5
AND users.restricted <> 1
AND profile_visits.visit_time > '2012-07-30 18:53:16'";

我还可以返回不包括时间戳的总访问次数吗?

最佳答案

您可以使用 CASECOUNT() 中有条件地聚合的表达式:

SELECT    COUNT(*) AS total_count,
COUNT(CASE WHEN profile_visits.visit_time > '2012-07-30 18:53:16' THEN 1 END) AS visitors_count
FROM profile_visits
LEFT JOIN users ON users.user_id=profile_visits.user_id
LEFT JOIN profile_info ON profile_info.user_id = users.user_id
WHERE profile_user_id=5 AND
users.restricted <> 1

我只是将 > '2012-07-30 18:53:16'WHERE 子句移动到 CASE 表达式COUNT() 仅在满足该条件时才对行进行计数。当然,COUNT(*) 将计算所有行,而不考虑时间戳。

关于mysql - 我可以使用条件 where 语句从 mysql 获得两个计数吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11758968/

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