几个简单的数据库面试问题
用户表:
用户编号 姓名 出生日期
1 张三 1988-5-9
2 李四 1985-3-5
…… …… ……
消费表:
ID 用户编号 金额
1 2 198523
2 1 45686
3 2 2568
假设以上数据表(不考虑范式),请完成一下sql语句:
1.统计所有用户每次平均消费金额
2.请查询出金额大于1000的所有用户姓名
------解决方案--------------------select 姓名,金额=sum(金额),sum(金额)/count(1)[平均消费] from 用户表 join 消费表 on 用户表.用户编号=消费表.用户编号 group by 姓名
select 姓名 from 用户表 a where (select sum(金额) from 消费表 b where b.用户编号=a.用户编号)>1000
------解决方案--------------------select 姓名,sum(金额)/count(1) [平均消费]
from 用户表 left join 消费表 on 用户表.用户编号=消费表.用户编号
group by 姓名
select 姓名
from 用户表 left join 消费表 on 用户表.用户编号=消费表.用户编号
where 金额>1000
------解决方案--------------------select 姓名,sum(金额)/count(1) [平均消费]
from 用户表 left join 消费表 on 用户表.用户编号=消费表.用户编号
group by 姓名
select 姓名
from 用户表 left join 消费表 on 用户表.用户编号=消费表.用户编号
where 金额>1000