sql -- 获取连续签到的用户列表
签到表:
需求:统计连续签到的 用户
1.根据用户和日期分组
select user_name, sign_date from user_sign group by user_name, sign_date order by user_name, sign_date
2.取出行号
select user_name,
sign_date,
if(@tmp = user_name, @rownum := @rownum + 1, @rownum := 1) as num,
@tmp := user_name
from (select user_name, sign_date from user_sign group by user_name, sign_date order by user_name, sign_date) a,
(select @rownum := 0, @tmp := '') b ;
3.使用日期做对比,有则叠加,没有则不叠加
datediff:返回2个日期之间的间隔天数
select user_name,
sign_date,
if(@tmp = user_name and datediff(sign_date, @date) = 1, @rownum := @rownum + 1, @rownum := 1) as num,
@tmp := user_name,
@date := sign_date
from (select user_name, sign_date from user_sign group by user_name, sign_date order by user_name, sign_date) a,
(select @rownum := 0, @tmp := '', @date := '') b
4.取出连续签到4天的用户列表
select * from (
select user_name,
sign_date,
if(@tmp = user_name and datediff(sign_date, @date) = 1, @rownum := @rownum + 1, @rownum := 1) as num,
@tmp := user_name,
@date := sign_date
from (select user_name, sign_date from user_sign group by user_name, sign_date order by user_name, sign_date) a,
(select @rownum := 0, @tmp := '', @date := '') b ) c where num=4;
sql -- 获取连续签到的用户列表的更多相关文章
- SQL获取连续数字中断数字
表A -- 创建结果表 create table #u(LostA int) declare @minA int,@maxA int set @minA=(select min(ID) from A) ...
- PHP连续签到
require "./global.php"; $act = isset($_GET['act']) ? $_GET['act'] : "error"; // ...
- PHP计算连续签到天数以及累计签到天数
代码如下: /** * 统计连续签到天数以及累计签到天数 * @param string $user_long_id 用户ID * @return array 一维数组 */ function sig ...
- SQL获取所有数据库名、表名、储存过程以及参数列表
SQL获取所有数据库名.表名.储存过程以及参数列表 1.获取所有用户名:SELECT name FROM Sysusers where status='2' and islogin='1'islogi ...
- iOS6.0下获取通讯录用户列表
自iOS6.0后获取通讯录列表需要询问用户,经过用户同意后才可以获取通讯录用户列表.而且ABAddressBookRef的初始化工作也由ABAddressBookCreate函数转变为ABAddres ...
- Ceph Object Gateway Admin api 获取用户列表问题
按照官方文档使用Admin Ops API 获取用户列表 GET /admin/user时 返回{code: 403, message: Forbidden}这里有两个问题:首先用户列表的请求为 如下 ...
- 使用mybatis提供的各种标签方法实现动态拼接Sql。这里演示where标签和if标签实现使用姓名的模糊查询和性别查询用户列表,当用户没有选择姓名以及性别时查询出所有的记录。
1.需求: 使用姓名的模糊查询和性别查询用户列表,当用户没有选择姓名以及性别时查询出所有的记录. 2.在UserMapper接口中定义方法: public List<User> findU ...
- php 实现微信模拟登陆、获取用户列表及群发消息功能示例
本文实例讲述了php实现微信模拟登陆.获取用户列表及群发消息功能.分享给大家供大家参考,具体如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 ...
- 在论坛中出现的比较难的sql问题:34(递归 获取连续值问题)
原文:在论坛中出现的比较难的sql问题:34(递归 获取连续值问题) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
随机推荐
- nodepad++ 让所有的加号收缩折叠展开的快捷键
折叠所有层次 Alt+0(这是零) 展开所有层次 Alt+Shift+0
- linux下特殊命令集锦
1.ifconfig -a | grep enp0 | cut -d : -f 1 //按照:进行切割网络文件名 如:ifconfig `ifconfig -a | grep enp0 | cut ...
- Docker相关学习地址
菜鸟教程:http://www.runoob.com/docker/docker-image-usage.html 官方文档:https://docs.docker.com/
- Python数据分析与展示第2周学习笔记(北理工 嵩天)
单元4:Matplotlib库入门 matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式 import matplotlib.pyplot as plt # -*- cod ...
- 2)thinkphp的带有命名空间的自动加载机制
(1)为啥thinkphp里面的文件要是写你的命名空间,要与你的路径一样,因为在thinkphp实现自动加载机制的原理,就是靠的你的命名空间对应这个路径,然后自动加载机制通过这个路径找到你的类文件,然 ...
- python语法基础-网络编程-TCP协议和UDP协议
############### 网络编程 ############## """ 网络编程 学习了Python基础之后,包括函数,面向对象等,你就可以开发了,你 ...
- 基于 maven 的ssm 框架搭建
1.新建一个 maven 工程, war 包 2.引入 pom 文件(springmvc+spring+mybatis) 3.引入配置文件 4.引入页面,编写 contorller 层测试 5.编写查 ...
- ArcGIS自定义坐标变换中的方法说明
在10.1里面,一共提供了12种转换的方法,如下: Ø Geocentric_Translation Ø Molodensky Ø Molodensky_Abridged Ø Position ...
- IntelliJ的.iml文件及相关的Class Not Found 问题
.iml 文件是IntelliJ IDEA 自动创建的模块文件,用于Java应用开发,存储一些模块开发相关的信息,比如一个Java组件, 插件组件,Maven组件等等, 还可能会存储一些模块路径信息, ...
- Xen入门系列二【使用 virt-install 安装虚拟机】
系统环境:Centos 6.5 + Xen4Centos安装方式 相关链接:Xen4Centos方式安装Xen请查看:http://www.cnblogs.com/hackboy/p/3662432. ...