我需要找到用户数量:
有一个或多个粉丝有两个粉丝有三个粉丝
下面是我为获得#1的答案而开发的sql
SELECT users.id, count(fans.id)
FROM users
JOIN fans on users.id = fans.user_id
GROUP BY users.id
HAVING COUNT(fans.id) > 0
上面的查询可以工作,但是我得到所有的用户记录,然后计算数组的大小。当用户数量达到数千人时,它的性能就很糟糕。如何重构查询,以便只获取用户数量?
我正在使用mysql,但我可能需要使用postgresql进行另一个项目。
我还需要获取发送消息的用户数量。
$userlist = mysql_query("select count(distinct m.subject) as msgcnt, u.name from message as m, message_users as mu, users as u where m.owner_id = u.id and m.id=mu.msg_id and mu.user_id='$u_id'group by name") or mysql_error();
while($row=mysql_fetch_array($use
我使用的是mysql 5.1
这是我的请求,我想要计算0到14岁之间并启用帐户的用户数量。
SELECT COUNT( DISTINCT user.id ) AS user
FROM profile, user
WHERE (
profile.age
BETWEEN 0
AND 14
)
AND user.enabled =1
user.enabled=1条件正在运行,但profile.age BETWEEN 0 AND 14未运行
我想限制在我们网站上注册的用户数量,我已经在MySql上写了一个简短的触发器
BEGIN
SELECT COUNT(*) INTO @cnt FROM walker;
IF @cnt >= 10 THEN
CALL sth(); -- What do I put here to stop more people from
registering?
END IF;
我有一个表users,它在用户注册时保存user_id和时间戳created_at。我想找到每天注册用户的数量和30天前的注册用户数量。
若要查找每天注册用户的数量,我有:
SELECT DATE_FORMAT(date(created_at),'%d %M %Y') AS Days, COUNT(user_id) as Profiles
FROM users
GROUP BY YEAR(created_at), MONTH(created_at), DAY(created_at);
要查找过去30天中注册用户的数量,我有以下内容:
SELECT current_date(),
我想要的SQL如下所示:
SELECT week_no, type,
SELECT count(distinct user_id) FROM group WHERE pts > 0
FROM base_table
GROUP BY week_no, type
但是我知道我可以使用COUNT(DISTINCT user_id)来计算每个组中的总用户数,但是我如何计算满足条件'pts > 0‘的用户数量呢?
我在用mysql,
谢谢。
我正在尝试将过去7天的注册用户数量显示在图表上,如果mysql返回0而不是没有行就好了。目前,它只返回具有值的每一天的一行
SELECT date(created_at),
count(id)
FROM user_accts
WHERE date(created_at) < NOW()
AND date(created_at) > DATE_SUB(NOW(), INTERVAL 7 DAY)
GROUP BY date(created_at);