各位sql大拿,帮忙统计一个不同日期二次消费的人数。
各位sql大神帮忙解下,业务需求-》 统计不同地区不同日期两次以上消费的人数,同一天消费两次或两次以上的只能算一次,结果如下表
area_name 二次消费人数
深圳 1
北京 2
上海 0
area_name 二次消费人数
深圳 1
北京 2
上海 0
CREATE TABLE `order` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`uid` int(11) NOT NULL DEFAULT '0',
`area_id` int(11) NOT NULL DEFAULT '0',
`dt` date DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of order
-- ----------------------------
INSERT INTO `order` VALUES ('1', '1', '100', '2017-03-15');
INSERT INTO `order` VALUES ('1', '1', '100', '2017-03-15');
INSERT INTO `order` VALUES ('1', '1', '100', '2017-03-16');
INSERT INTO `order` VALUES ('1', '1', '101', '2017-03-16');
INSERT INTO `order` VALUES ('1', '2', '101', '2017-03-16');
INSERT INTO `order` VALUES ('1', '2', '101', '2017-03-17');
INSERT INTO `order` VALUES ('1', '3', '101', '2017-03-17');
INSERT INTO `order` VALUES ('1', '3', '101', '2017-03-18');
INSERT INTO `order` VALUES ('1', '3', '101', '2017-03-19');
INSERT INTO `order` VALUES ('1', '3', '101', '2017-03-20');
INSERT INTO `order` VALUES ('1', '4', '102', '2017-03-20');
CREATE TABLE `area` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`area_name` varchar(20) NOT NULL DEFAULT '',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=103 DEFAULT CHARSET=utf8;
-- ----------------------------
-- Records of area
-- ----------------------------
INSERT INTO `area` VALUES ('100', '深圳');
INSERT INTO `area` VALUES ('101', '北京');
INSERT INTO `area` VALUES ('102', '上海');
...全文
相关推荐
SQL动态日期列生成并统计
知识点:SQL根据一个日期,返回1号至当日所有日期.sql"这个文件名暗示了一个更具体的应用,即生成从指定日期开始到当天的所有日期。
一个常用的报表统计SQL语句
每个查询都是对表中的数据进行分组,按照日期、自选字段1和自选字段2进行分类,并对不同类型的事件进行计数。这种设计允许在同一报表中展示多个事件类型,每个类型对应一个列。
Mysql出生日期转换为年龄并分组统计人数的方法示例
本文介绍了在MySQL中如何将出生日期转换为年龄,并进行年龄段的分组统计。首先,我们可以通过使用TIMESTAMPDIFF函数结合CURDATE()函数来计算当前日期与出生日期之间的差值,从而得到个体
使用pyspark统计在线人数
**按日期分区统计**:假设日期字段名为 `date`,可以先按照日期分组,再计算每个日期的在线人数: ```python from pyspark.sql.functions import sum grouped_data
ASP统计数据库中不同日期的数据个数
在描述中提到的"ASP统计数据库中不同日期的数据个数"是一个具体的应用实例,它涉及到以下几个关键知识点:1.


