多表关联以及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 @   土孩子  阅读(44)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· .NET Core 中如何实现缓存的预热?
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
· 【译】Visual Studio 中新的强大生产力特性
点击右上角即可分享
微信分享提示