6. 分组与聚合函数(3)五花八门的项目,其实都有固定套路(1)
经常去足疗按摩店的朋友都知道,项目分为好几个档次。太敏感了我就不说中文了,都用简体英文代替。
一般按照金额从低到高排列,会对应五种。1-With Hand,2-With Mimi,3-Blow Jobbie,4-Do i,5-Double Fly。
既然我们没法实地探访到底有哪些项目,只能用消费金额来类比服务项目。
找出“红玫瑰按摩保健休闲”,在2024年1-7月,最受欢迎的5种服务项目(消费金额)。
输出trx_amt(消费金额)、trx_cnt(交易笔数)两个字段。
cmb_usr_trx_rcd ,支付明细表
usr_id | mch_nm | trx_time | trx_amt |
---|---|---|---|
5201314520 | 肯德基 | 2023-10-01 12:23:24 | 49 |
5211414521 | 丝芙源网络 | 2024-03-13 17:23:23 | 123 |
请输出trx_amt、trx_cnt(交易笔数)两个字段,按交易笔数降序排序,只取前5名。
trx_amt | trx_cnt |
---|---|
888.00 | 380 |
288.00 | 364 |
588.00 | 249 |
1288.00 | 247 |
388.00 | 219 |
点击下方空白区域即可查看参考答案
/*
* 任何字段都可以被 Group By,而不仅仅是 mch_nm、usr_id
* 计算红玫瑰按摩保健休闲在2024年1月至7月期间,每个交易金额出现的次数
* 按出现次数降序排列,并限制结果为前5条
*/
select
trx_amt, /* 交易金额 */
count(1) as trx_cnt /* 每个交易金额出现的次数 */
from
cmb_usr_trx_rcd
where
mch_nm = '红玫瑰按摩保健休闲' /* 筛选出特定商户的交易记录 */
and year(trx_time) = 2024 /* 筛选出2024年的交易记录 */
and month(trx_time) in (1, 2, 3, 4, 5, 6, 7) /* 筛选出1月至7月的交易记录 */
group by
trx_amt /* 按交易金额分组 */
order by
trx_cnt desc /* 按出现次数降序排列 */
limit 5; /* 限制结果为前5条 */
MySQL 8.0
xxxxxxxxxx
2
select * from cmb_usr_trx_rcd limit 5;