mysql查询周流失

问题描述

前边提问说查周流失率,就是上周登录的人在本周没登录这样的一个人数。select count(1) from (select distinct playerId from log_login l1 where week(now())-1=week(loginTime) and not exists(select distinct playerId from log_login l2 where l1.playerId = l2.playerId and week(NOW()) =week(loginTime)))t;现在又让我查各级别的周流失用户数比如说等级为2-10级这样一个等级段的人上周登录了在本周没登陆的人数。有好几个阶段 1,2-10,11-20,21-40,41-60,61-80,81-100.我加上leve>=x and level<=x。这几个查出来的数量比上周登录的总用户还要多!!不知道是我的sql语句错了,还是数据库的数据有问题。下面是我的sql语句:select count(distinct playerId) from log_login l1 where week(now())-1=week(loginTime) and level=1 and not exists(select distinct playerId from log_login l2 where l1.playerId = l2.playerId and week(NOW()) =week(loginTime) and level=1);

解决方案

select count(distinct playerId) from log_login l1 where week(now())=week(loginTime) and level=1 and not exists(select distinct playerId from log_login l2 where l1.playerId = l2.playerId and week(NOW()) -1=week(loginTime));去掉 and level=1 否则查询时会造成 很多not exists
解决方案二:
写得差不多了啊

时间: 2024-10-28 04:42:09

mysql查询周流失的相关文章

mysql查询周留存

问题描述 出来了一个,但总是感觉不对.贴上来看看,如果不对应该怎么写?我要查询本周登录下周不再登录的用户数量.select count(distinct playerId) from log_login l1 where week(now())-1=week(loginTime) and exists(select 1 from log_login l2 where l1.playerId = l2.playerId and week(NOW())=week(loginTime)); 问题补充:

mysql查询当天所有数据sql语句

  mysql查询当天的所有信息: 代码如下 select * from test where year(regdate)=year(now()) and month(regdate)=month(now()) and day(regdate)=day(now()) 这个有一些繁琐,还有简单的写法: 代码如下 select * from table where date(regdate) = curdate(); 另一种写法没测试过 查询当天的记录 代码如下 select * from hb_a

mysql 查询固定时间段问题

问题描述 mysql 查询固定时间段问题 查询一个表中这一周的时间,这一天的时间,这一个月的时间的数据 解决方案 mysql按时间段查询MySql查询时间段django 查询时间段

php、mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳)

php.mysql查询当天,查询本周,查询本月的数据实例(字段是时间戳) //其中 video 是表名: //createtime 是字段: // //数据库time字段为时间戳 // //查询当天: $start = date('Y-m-d 00:00:00'); $end = date('Y-m-d H:i:s'); SELECT * FROM `table_name` WHERE `time` >= unix_timestamp( '$start' ) AND `time` <= uni

mysql查询学生成绩及各科成绩的排名

问题描述 mysql查询学生成绩及各科成绩的排名 学生表student有主键id,学号stuNum,姓名stuName, 课程表course有课程名称主键id,cname 成绩表sc有主键id,学生表id,课程表id 班级表class有主键id,班级名称cname,外键gid关联年纪表的id主键 年纪表grade有主键id,年纪名称gname 年纪-课程表gc有主键id,年纪表gid,课程表cid 所有的表主键id都是uuid 现在查询一个学生的各科成绩以及每科的成绩在班级和在年纪的排名,(如可

MySQL 4.1.0 中文参考手册 --- 6.9 MySQL 查询缓存

mysql|参考|参考手册|缓存|中文 MySQL 4.1.0 中文参考手册 --- 犬犬(心帆)翻译 MySQL Reference Manual for version 4.1.0-alpha. 6.9 MySQL 查询缓存 从 MySQL 4.0.1 开始,MySQL server 有一个重要的特征:Query Cache. 当在使用中,查询缓存会存储一个 SELECT 查询的文本与被传送到客户端的相应结果.如果之后接收到一个同样的查询,服务器将从查询缓存中检索结果,而不是再次分析和执行这

mysql查询区分大小写高性能

 mysql查询默认是不区分大小写的 如: 1 2 3 4 5 6 7 <a href="/tags.php/select/" target="_blank">select</a>  * from  table_name where  a like  'a%'       select  * from  table_name where  a like  'A%'       select * from table_name where a 

MySQL查询和修改auto

 本文实例讲述了MySQL查询和修改auto_increment的方法.分享给大家供大家参考.具体如下: 查询表名为tableName的auto_increment值: 代码如下: SELECT AUTO_INCREMENT FROM information_schema.tables WHERE table_name="tableName";   修改表名为tableName的auto_increment值: 代码如下: ALTER TABLE tableName auto_incr

mysql查询随机几条数据

MySql查询随机几条数据 想到了 Max RAND 这几个函数 用以下2种办法都可以实现查询. 速度还行. 几十万数据左右, 没有什么问题. SELECT * FROM `news` WHERE id >= (SELECT floor(RAND() * (SELECT MAX(id) FROM `news`))) LIMIT 10; SELECT * FROM `news` AS t1 JOIN (SELECT ROUND(RAND() * ((SELECT MAX(id) FROM `new