Mysql 面试习题(一)深坑
• SQL语言允许使用通配符进行字符串匹配的操作,其中‘%’可以表示:
A.零个字符
B.1个字符
C.多个字符
D.以上都是
D
• 如果有两张表employees和departments如下:
(1) 写出SQL得出每个部门的平均工资。
(2) 查询量表得出如下结果:
• 如有有一张表player,有id、name两个列,我想知道这张表有多少行数据,id最大的前10位的name是什么,请问这两个SQL语句如何写?
• 查询一张数据表(tb),基本字段:日期,订单
要求用SQL实现:
周次(week),订单总和,日均订单,极大值订单,极小值订单
• 使用SQL实现以下数据表行转列及总分,平均分(数据表:table)
• 查询数据表(order),基本字段如下:
省,市,店铺名称,订单数
要求安”市”排序,需要看到每一个市的订单排名前三名的门店及订单数
• 用户登陆日志表为user_id,log_time,session_id,plat
1.用sql查询近30天,每天平均登陆用户数量?
2.写sql查询出近30天,连续访问7天以上的用户数量?
(不会)
• 交易表结构user_id(用户ID),order_id(订单),pay_time(付款时间),order_amount(金额)。
1.写sql查询过去一个月付款用户量(提示:用户量需去重)最高的3天分别是哪几天?
2.写sql查询昨天每个用户最后付款的订单ID及金额?
• 有PV表a(表结构为user_id(用户名),goods_id(商品ID)),点击表b(表结构为user_id(用户名),goods_id(商品ID))两个表,各存放40亿条user_id的goods_id访问记录,在防止数据倾斜的情况下,写一句sql找出a、b两个表共同的user_id与相应的goods_id?
• 对于通过不同渠道拉新进来的用户,经过一段时间许多用户可能流水,而留下来的用户称之为留存用户。分析用户留存是拉新和用户运营的重要指标。假如我们有一张用户访问表:person_visit,记录了所有用户的访问信息,包含字段:
用户id:user_id,访问时间:visit_date,访问页面:page_name,访问渠道(android,ios):plat等
1.请统计近7天每天到访的新用户数。
2.请统计每个访问渠道7天前(D-7)的新用户的3日留存和7日留存率。
(不会)
• 表group有四个字段,表结构如下:
create table group(
id bigint comment '群号',
name string comment '群名',
class string comment '群类别',
num int comment '群成员数量'
);
数据如下:
1 一起打球 篮球 10
2 来玩球吧 篮球 15
3 滨江一霸 篮球 5
4 足球小将 足球 20
5 绝代双骄 足球 30
6 玩个球啊 乒乓 19
...
PK为id
1、求群数量少于1000的群类别
2、求每个群类别下,群成员数量最多的100个群
• 需要对用户抽样用以分析,用户表结构为user_id(用户ID),reg_time(注册时间),age(年龄)。
1.写一句SQL按user_id尾数随机抽样2000个用户?
2.写一句SQL取出按各年龄段(每10岁一个分段,如:[0,10),[10,20),[20,30)...)分别抽取1%的用户?
(不会)
大神若看到该贴,欢迎指教~