MySQL分区间进行数据统计
假设当前数据库mc_userdb,其中有customer_login(用户登陆表)
CREATE DATABASE `mc_userdb`;
USE `mc_userdb`;DROP TABLE IF EXISTS `customer_login`;
CREATE TABLE `customer_login` (`customer_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '用户ID',`login_name` VARCHAR(20) NOT NULL COMMENT '用户登陆名',`password` CHAR(32) NOT NULL COMMENT 'md5加密的密码',`user_stats` TINYINT(4) NOT NULL DEFAULT '1' COMMENT '用户状态',`modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',PRIMARY KEY (`customer_id`)
) ENGINE=INNODB AUTO_INCREMENT=10011 DEFAULT CHARSET=utf8 COMMENT='用户登陆表';
另外有数据库mc_orderdb,其中有order_master(订单主表)
CREATE DATABASE `mc_orderdb`;
USE `mc_orderdb`;DROP TABLE IF EXISTS `order_master`;
CREATE TABLE `order_master` (`order_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '订单ID',`order_sn` BIGINT(20) UNSIGNED NOT NULL COMMENT '订单编号 yyyymmddnnnnnnnn',`customer_id` INT(10) UNSIGNED NOT NULL COMMENT '下单人ID',`shipping_user` VARCHAR(10) NOT NULL COMMENT '收货人姓名',`province` SMALLINT(6) NOT NULL COMMENT '收货人所在省',`city` SMALLINT(6) NOT NULL COMMENT '收货人所在市',`district` SMALLINT(6) NOT NULL COMMENT '收货人所在区',`address` VARCHAR(100) NOT NULL COMMENT '收货人详细地址',`payment_method` TINYINT(4) NOT NULL COMMENT '支付方式:1现金,2余额,3网银,4支付宝,5微信',`order_money` DECIMAL(8,2) NOT NULL COMMENT '订单金额',`district_money` DECIMAL(8,2) NOT NULL DEFAULT '0.00' COMMENT '优惠金额',`shipping_money` DECIMAL(8,2) NOT NULL DEFAULT '0.00' COMMENT '运费金额',`payment_money` DECIMAL(8,2) NOT NULL DEFAULT '0.00' COMMENT '支付金额',`shipping_comp_name` VARCHAR(10) DEFAULT NULL COMMENT '快递公司名称',`shipping_sn` VARCHAR(50) DEFAULT NULL COMMENT '快递单号',`create_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '下单时间',`shipping_time` DATETIME DEFAULT NULL COMMENT '发货时间',`pay_time` DATETIME DEFAULT NULL COMMENT '支付时间',`receive_time` DATETIME DEFAULT NULL COMMENT '收货时间',`order_status` TINYINT(4) NOT NULL DEFAULT '0' COMMENT '订单状态',`order_point` INT(10) UNSIGNED NOT NULL DEFAULT '0' COMMENT '订单积分',`invoice_title` VARCHAR(100) DEFAULT NULL COMMENT '发票抬头',`modified_time` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后修改时间',PRIMARY KEY (`order_id`),UNIQUE KEY `ux_ordersn` (`order_sn`)
) ENGINE=INNODB AUTO_INCREMENT=10011 DEFAULT CHARSET=utf8 COMMENT='订单主表';
业务场景:统计消费总金额大于1000元的,800到1000元的,500到800元的,以及500元以下的人数
第一步: 根据customer_id字段进行分组,计算出每位用户的消费总和
SELECT customer_id,SUM(order_money) AS total_money
FROM mc_orderdb.`order_master`
GROUP BY customer_id
第二步:将customer_login与order_master进行左连接,对左连接的结果集使用count函数计算出各个区间段的数据统计
SELECT COUNT(CASE WHEN IFNULL(total_money,0) >=1000 THEN a.customer_id END) AS '>1000',COUNT(CASE WHEN IFNULL(total_money,0) >=800 AND IFNULL(total_money,0) <1000 THEN a.customer_id END) AS '800~1000',COUNT(CASE WHEN IFNULL(total_money,0) >=500 AND IFNULL(total_money,0) <800 THEN a.customer_id END) AS '500~800',COUNT(CASE WHEN IFNULL(total_money,0) <500 THEN a.customer_id END) AS '<500'
FROM mc_userdb.`customer_login` a
LEFT JOIN
( SELECT customer_id,SUM(order_money) AS total_moneyFROM mc_orderdb.`order_master` GROUP BY customer_id) b
ON a.`customer_id`=b.`customer_id`
MySQL分区间进行数据统计相关推荐
- mysql 计算成功率_mysql数据统计技巧备忘录
mysql 作为常用数据库,操作贼六是必须的,对于数字操作相关的东西,那是相当方便,本节就来拎几个统计案例出来供参考! order订单表,样例如下: CREATE TABLE`t_order` ( ` ...
- 中国微型计算机分省市产量数据统计,2017年6月中国微型计算机设备产量统计数据分析...
根据三胜产业研究中心数据,2017年1-6月全国微型计算机设备产量统计显示: 2017年6月全国微型计算机设备产量为2896.88万部,当月同比增速18.9%:2017年1-6月全国微型计算机设备产量 ...
- avg最多用多少列 mysql_MySQL_MySQL中几种数据统计查询的基本使用教程,统计平均数
SELECT AVG() FROM 语 - phpStudy...
MySQL中几种数据统计查询的基本使用教程 统计平均数SELECT AVG() FROM 语法用于从数据表中统计数据平均数. 语法: SELECT AVG(column) FROM tb_name 该 ...
- mysql年龄段统计_怎么分年龄段查询、统计?
你的位置: 问答吧 -> PHP基础 -> 问题详情 怎么分年龄段查询.统计? 人员的资料中有"出生日期"字段,问: 如何按照每5年为一个区间去查询统计人员数据? 我初 ...
- mysql年月分表_MySQL之按月拆分主表并按月分表写入数据提高数据查询速度
使用场景: 主表数据量特别大,为了提高查询的速度,可以考虑按月进行分表,要求就是当月的数据到当月表查询,上月的数据到上月表查询,当天的数据到主表来查询.这样在一定程度上也是提高了数据的查询速度 过程演 ...
- mysql 统计_mysql数据统计级别技巧
本文提及技巧只适用数据统计,OLAP场景,不建议用于业务sql. 分组top问题 知识点:巧用局部变量,实现Hive窗口分析函数功能row_number() over(partition by e ...
- mysql 优化300例_PHP+MySQL实现对一段时间内每天数据统计优化操作实例
本文实例讲述了PHP+MySQL实现对一段时间内每天数据统计优化操作.分享给大家供大家参考,具体如下: 在互联网项目中,对项目的数据分析必不可少.通常会统计某一段时间内每天数据总计变化趋势调整营销策略 ...
- mysql 查询每人每天_PHP+MySQL实现对一段时间内每天数据统计优化操作实例
本文实例讲述了PHP+MySQL实现对一段时间内每天数据统计优化操作.分享给大家供大家参考,具体如下: 在互联网项目中,对项目的数据分析必不可少.通常会统计某一段时间内每天数据总计变化趋势调整营销策略 ...
- mysql 定时统计_PHP+MySQL定时数据统计优化
这次给大家带来PHP+MySQL定时数据统计优化,PHP+MySQL定时数据统计优化的注意事项有哪些,下面就是实战案例,一起来看一下. 在互联网项目中,对项目的数据分析必不可少.通常会统计某一段时间内 ...
最新文章
- HDU4549(矩阵快速幂+快速幂)
- Unity5 AssetBundle系列——简单的AssetBundleManager
- 云计算技术 — 云计算技术发展编年史
- wireshark 如何修改抓包时间日期显示格式?
- 飞桨框架2.0RC新增模型保存、加载方案,与用户场景完美匹配,更全面、更易用
- Thinkphp3.23 关联模型relation方法不存在解决方法
- 阿里云mysql安装
- 真香定律!Android动态换肤实现原理解析,原理+实战+视频+源码
- java 取pdf 文本域_java – 使用iText从pdf文件中提取文本列
- mysql 的节点组是什么_什么是MySQL集群
- Android TextView文字横向自动滚动(跑马灯)
- RT-Thread Nano移植
- 聚类分析-K均值matlab(一)
- 表单和ajax中的post请求后台获取数据方法
- 京瓷打印机m5521cdn_京瓷M5521cdn驱动-京瓷ECOSYS M5521cdn打印机驱动下载 v5.1.2106官方版--pc6下载站...
- Excel实现Base16-Base64编码转换(SAP SCM)
- Wekan 2.23 发布,支持中文的 JavaScript kanban
- excel合并多个工作表_多个Excel工作表合并到一个工作簿?很简单!
- k8s设计-多容器pod设计模式
- 不忘初心,砥砺前行。
热门文章
- EXP 导出出错解决方案
- 2021年品牌CDP与营销数字化转型报告:从自建数据资产到消费者深度运营
- 【报告分享】完美日记品牌分析报告.pdf(附68页pdf全文下载链接)
- ubuntu下修改用户的默认目录
- 谷歌 ICLR 2020 | 向量化召回也需要『预训练』
- oracle hcm 发展,甲骨文发布Oracle HCM Cloud云服务 呈现三大亮点
- java jdbc sql 参数_java – Postgresql JDBC表值参数
- Algorithm:递归思想及实例分析
- Leetcode每日一题:36.valid-sudoku(有效的数独)
- 香港首个港人“首置项目”超额认购逾44倍