多表关联以及mysql函数混用

查出平均支付金额大于0.5元的用户的姓名和用户ID
t_user_info用户表:字段 id,nickname
t_pay:支付表,字段 userid,cent_amount付款金额
分析思路:
1.首先 一个用户存在多笔订单,且需要根据这个用户ID进行分组,并取其平均值;然后做平均支付金额做大于0.5进行筛选
2.关联用户表,查询用户表中的姓名字段

拆分步骤:
select * from t_pay;
selcet* from t_pay left_join t_user_info on t_pay.userid=t_user_info.id;
selcet userid,nickname, avg(cent_amount) from t_pay left_join t_user_info on t_pay.userid=t_user_info.id GROUP BY userid;
select userid,nickname,avg(cent_amount) from t_pay left_join t_user_info on t_pay.userid=t_user_info.id group by userid having avg(cent_amount)>0.5;

使用临时表思路进行查询:
select userid,nickname,avg(num) from t_pay group by userid having avg(num)>0.5 作为临时表

select * from(select userid,nickname,avg(num) from t_pay group by userid having avg(num)>0.5) AS T

select * from(select userid,nickname,avg(num) AS 平均金额 from t_pay group by userid having avg(num)>0.5) AS T left_join t_user_info on T.userid=t_user_info.id;

select T.userid,T.平均金额,t_user_info.nickname from (select userid,nickname,avg(num) AS 平均金额 from t_pay group by userid having avg(num)>0.5) AS T left_join t_user_info on T.userid=t_user_info.id;

posted @ 2022-01-11 11:05  土孩子  阅读(54)  评论(0)    收藏  举报