假设有一张订单表 order,包含以下字段:
- id:订单编号
- create_time:订单创建时间
- type:订单类型
- user_id:用户编号
要按天和订单类型统计订单数量,并根据用户编号去重,可以使用以下 SQL 语句:
SELECT DATE(create_time) AS date, type, COUNT(DISTINCT user_id) AS count
FROM order
GROUP BY date, type
ORDER BY date, type;
解释一下上面的 SQL 语句:
- 首先使用
DATE()
函数将create_time
字段转换成日期格式; - 然后按照日期和类型进行分组,使用
GROUP BY
关键字; - 使用
COUNT()
函数统计每个分组中不重复的用户数量,同时使用DISTINCT
关键字去重; - 最后按照日期和类型进行排序,使用
ORDER BY
关键字。
这样就能得到一个按天和类型统计订单数量,并且根据用户编号去重的结果。