统计数据sql
语句(练习)
前言:
放假放的太久了,sql语句都忘记了,复习一波!
统计一般都会使用到分组与聚合函数
重点是,确定限制条件来限制,然后在根据需要的数据分组!
统计一个月的数据:
例如: 统一商品订单表里一个月各类商品各卖出多少!
先根据开始于结束时间限制在一个月范围内,所有需要商品分组,相同数据为一组,统计卖出多少!
SELECT idm.goods_name,COUNT(idm.goods_name) as '卖出数量'
FROM `order_idm` idm
where idm.create_date BETWEEN #{开始时间} and #{结束时间}
GROUP BY idm.goods_name #根据商品分组,相同为一组
统计一个月中每天的数据:
例如: 统计一个月中每天卖出多少个!
先限制一个月条件, 然后根据天来分组! 然后聚合函数求数量
SELECT DATE_FORMAT(idm.create_date,'%d') as '号',SUM(idm.goods_volume) as '卖出数量'
FROM `mc_order_idm` idm
where idm.create_date BETWEEN '2019-10-01 00:00:01' and '2019-10-31 23:59:59'
GROUP BY DATE_FORMAT(idm.create_date,'%d')
统计一年中每月的数据:
例如: 统计一年中每月销售额!
先限制条件为那一年,然后根据月份分组,获取每个月份的数据! 然后聚合函数求和金额
SELECT DATE_FORMAT(idm.create_date,'%c') as '月份',SUM(idm.actual_amount) as '每月销售金额'
FROM `mc_order_idm` idm
where idm.create_date BETWEEN '2018-01-01 00:00:01' and '2019-12-31 23:59:59'
GROUP BY DATE_FORMAT(idm.create_date,'%c')
统计一天中,每小时的数据
例如: 统计一天每小时的销售金额!
确定条件是一天的范围, 然后需要小时的数据就以小时为分组! 然后聚合函数求和金额
SELECT DATE_FORMAT(idm.create_date,'%k') as '小时',SUM(idm.actual_amount) as '每月销售金额'
FROM `mc_order_idm` idm
where idm.create_date BETWEEN '2019-10-28 00:00:01' and '2019-10-28 23:59:59'
GROUP BY DATE_FORMAT(idm.create_date,'%k')
------------------------也可以使用HOUR(*time*)---------------------------
SELECT HOUR(idm.create_date) as '小时',SUM(idm.actual_amount) as '每月销售金额'
FROM `mc_order_idm` idm
where idm.create_date BETWEEN '2019-10-28 00:00:01' and '2019-10-28 23:59:59'
GROUP BY HOUR(idm.create_date)
DATE_FORMAT(*
date*,*
format*)
*date
根据format
*字符串 格式化值。
也可以使用其他日期函数:
DAYOFMONTH(*
date*)
传回的月份中的某天, *date
*范围 1
为31
,或传回 0
日期为零的日期(例如 '0000-00-00'
或) '2008-00-00'
。
等等…在官网