笔者在求职数据分析师岗位时,在知乎上看到了一道非常经典的SQL题,问题来源: link。笔者认为彻底的搞懂这道题以及涉及的知识点,能够通过绝大部分数据分析岗位的SQL笔试。下面是这道题的问题及解答,答案为笔者原创,代码均在oracle数据库调试通过,但可能有考虑不周全的地方或其他解法,欢迎大家在评论区交流

SQL题-用户登录领红包

  • 表结构介绍
  • 问题描述
    • 第一问
    • 第二问
    • 第三问
    • 第四问
    • 第五问
    • 第六问
    • 第七问
    • 第八问
    • 第九问
  • 问题解答
    • 建表
    • 插入数据
    • 解答

表结构介绍

1、用户活跃表:tmp_liujg_dau_based
1)imp_date,日期,string格式,样例20190601
2)qimei,用户唯一标识,string格式,无空值
3)is_new,新用户标识,string,1表示新用户,0表示老用户
说明:以imp_date、qimei为主键,一个用户1天只出现1次,出现即表示当日登陆

2、红包活动参与表:tmp_liujg_packet_based
1)imp_date,日期,string格式,样例20190601
2)report_time,领取时间戳,string格式
3)qimei,用户唯一标识,string格式,无空值
4)add_money,领取金额,string格式,表示领取金额,单位为分,无空值或0值
说明:日志流水表,每一行为领取1次红包。无特殊情况说明,一般不考虑领取红包但当日未登录的情况

问题描述

第一问

计算20190601至今,每日DAU(活跃用户量,即有登陆的用户)
输出维度:imp_date(日期)
输出指标:dau

第二问

计算20190601至今,每日领取红包的新用户数,老用户数,及人均领取金额,人均领取次数
输出维度:imp_date(日期),is_new(新用户1,老用户0,未知2)
输出指标:mean_money(人均领取金额),mean_get_count(人均领取次数)

第三问

计算2019年3月,每个月按领红包取天数为1、2、3……30、31天区分,计算取每个月领取红包的用户数,人均领取金额,人均领取次数
输出维度:month(月份),get_money_das(领取天数)
输出指标:user_count(用户数),mean_money(人均领取金额),mean_get_count(人均领取次数)

第四问

计算2019年3月,每个月领过红包用户和未领红包用户的数量,平均月活跃天数(即本月平均活跃多少天)
输出维度:month(月份),is_packet_user(红包用户1,非红包用户0)
输出指标:user_count(用户数量),mean_days_in_month(月活跃天数)

第五问

计算2019年3月至今,每个月活跃用户的注册日期,2019年3月1日前注册的用户日期填空即可
输出维度:month(月份),qimei(用户唯一标识)
输出指标:register_date(注册日期)

第六问

计算2019年3月至今,每日的用户次日留存率,领取红包用户的次日留存,未领取红包用户的次日留存率
输出维度:imp_date(日期)
输出指标:dau(当日用户数),retain_rate(次日留存率)
,packet_user_retain_rate(当日领红包用户次日留存率),unpacket_user_retain_rate(当日未领红包用户次日留存率)

第七问

计算2019年3月1日至今,每日新用户领取的第一个红包的金额
输出维度:imp_date(日期),qimei(用户唯一标识)
输出指标:money(第一个红包的金额)

第八问

计算2019年3月1日至今,每个新用户领取的第一个红包和第二个红包的时间差(只计算注册当日有领取红包的用户,注册当日及以后的DAU表中新用户为1的用户)
输出维度:imp_date(注册日期),qimei(用户唯一标识)
输出指标:first_action_time(首次领红包时间),second_action_time(第二次领红包时间),delta_times(时间差)

第九问

计算2019年6月1日至今,每日领取红包用户领取金额的中位数
输出维度:imp_date(日期)
输出指标:mid_money(用户当日领取红包金额的中位数)

问题解答

建表

create table tmp_liujg_dau_based(-- 活跃用户表
imp_date varchar2(32),-- 日期
qimei  varchar2(32),-- 用户唯一标识
is_new  varchar2(16));-- 新用户标识:1新用户 0老用户create table tmp_liujg_packed_based  (-- 红包领取表
imp_date  varchar2(32),-- 日期
report_time   varchar2(32),-- 领取时间戳
qimei  varchar2(32),-- 用户唯一标识
add_money varchar2(32));

插入数据

-- 插入用户表数据
insert all
into tmp_liujg_dau_based values('20190301','001','0')
into tmp_liujg_dau_based values('20190301','002','0')
into tmp_liujg_dau_based values('20190301','003','1')
into tmp_liujg_dau_based values('20190301','004','1')
into tmp_liujg_dau_based values('20190301','005','1')
into tmp_liujg_dau_based values('20190301','006','1')
into tmp_liujg_dau_based values('20190302','001','0')
into tmp_liujg_dau_based values('20190302','002','0')
into tmp_liujg_dau_based values('20190302','003','0')
into tmp_liujg_dau_based values('20190302','005','0')
into tmp_liujg_dau_based values('20190302','006','0')
into tmp_liujg_dau_based values('20190302','007','1')
into tmp_liujg_dau_based values('20190303','005','0')
into tmp_liujg_dau_based values('20190303','006','0')
into tmp_liujg_dau_based values('20190303','007','0')
into tmp_liujg_dau_based values('20190303','008','1')
into tmp_liujg_dau_based values('20190303','009','1')
into tmp_liujg_dau_based values('20190303','010','1')
into tmp_liujg_dau_based values('20190401','008','0')
into tmp_liujg_dau_based values('20190401','009','0')
into tmp_liujg_dau_based values('20190401','010','0')
into tmp_liujg_dau_based values('20190401','011','1')
into tmp_liujg_dau_based values('20190401','012','1')
into tmp_liujg_dau_based values('20190402','009','0')
into tmp_liujg_dau_based values('20190402','010','0')
into tmp_liujg_dau_based values('20190402','011','0')
into tmp_liujg_dau_based values('20190402','012','0')
into tmp_liujg_dau_based values('20190402','013','1')
into tmp_liujg_dau_based values('20190402','014','1')
into tmp_liujg_dau_based values('20190501','001','0')
into tmp_liujg_dau_based values('20190501','002','0')
into tmp_liujg_dau_based values('20190501','008','0')
into tmp_liujg_dau_based values('20190501','007','0')
into tmp_liujg_dau_based values('20190501','015','1')
into tmp_liujg_dau_based values('20190501','016','1')
into tmp_liujg_dau_based values('20190501','017','1')
into tmp_liujg_dau_based values('20190501','018','1')
into tmp_liujg_dau_based values('20190601','008','0')
into tmp_liujg_dau_based values('20190601','017','0')
into tmp_liujg_dau_based values('20190601','018','0')
into tmp_liujg_dau_based values('20190601','019','1')
into tmp_liujg_dau_based values('20190601','020','1')
into tmp_liujg_dau_based values('20190601','021','1')
into tmp_liujg_dau_based values('20190601','022','1')
into tmp_liujg_dau_based values('20190603','021','0')
into tmp_liujg_dau_based values('20190603','022','0')
into tmp_liujg_dau_based values('20190603','011','0')
into tmp_liujg_dau_based values('20190603','012','0')
into tmp_liujg_dau_based values('20190603','023','1')
into tmp_liujg_dau_based values('20190701','023','0')
into tmp_liujg_dau_based values('20190701','008','0')
into tmp_liujg_dau_based values('20190701','011','0')
into tmp_liujg_dau_based values('20190701','022','0')
into tmp_liujg_dau_based values('20190701','012','0')
into tmp_liujg_dau_based values('20190701','024','1')
into tmp_liujg_dau_based values('20190701','025','1')
into tmp_liujg_dau_based values('20190701','026','1')
into tmp_liujg_dau_based values('20190701','027','1')
into tmp_liujg_dau_based values('20190705','026','0')
into tmp_liujg_dau_based values('20190705','027','0')
into tmp_liujg_dau_based values('20190705','009','0')
into tmp_liujg_dau_based values('20190705','010','0')
into tmp_liujg_dau_based values('20190705','028','1')
into tmp_liujg_dau_based values('20190705','029','1')
select 1 from dual
-- 插入红包表数据
insert allinto tmp_liujg_packed_based values('20190301','2019/03/01 10:15:01','001','1.05')into tmp_liujg_packed_based values('20190301','2019/03/01 13:15:01','001','2.30')into tmp_liujg_packed_based values('20190301','2019/03/01 11:15:01','002','0.80')into tmp_liujg_packed_based values('20190301','2019/03/01 17:15:01','002','0.89')into tmp_liujg_packed_based values('20190301','2019/03/01 14:15:01','003','2.12')into tmp_liujg_packed_based values('20190301','2019/03/01 18:15:01','003','1.12')into tmp_liujg_packed_based values('20190301','2019/03/01 17:15:01','005','1.12')into tmp_liujg_packed_based values('20190301','2019/03/01 19:15:01','005','0.12')into tmp_liujg_packed_based values('20190301','2019/03/01 09:15:01','006','0.98')into tmp_liujg_packed_based values('20190301','2019/03/01 11:15:01','006','1.45')into tmp_liujg_packed_based values('20190302','2019/03/02 09:30:01','001','0.78')into tmp_liujg_packed_based values('20190302','2019/03/02 19:30:01','001','0.88')into tmp_liujg_packed_based values('20190302','2019/03/02 10:30:01','003','0.68')into tmp_liujg_packed_based values('20190302','2019/03/02 09:30:01','005','1.01')into tmp_liujg_packed_based values('20190302','2019/03/02 14:30:01','005','1.88')into tmp_liujg_packed_based values('20190302','2019/03/02 14:30:01','006','1.88')into tmp_liujg_packed_based values('20190302','2019/03/02 10:30:01','006','0.68')into tmp_liujg_packed_based values('20190302','2019/03/02 15:30:01','007','0.68')into tmp_liujg_packed_based values('20190302','2019/03/02 16:30:01','007','1.78')into tmp_liujg_packed_based values('20190303','2019/03/03 16:30:01','005','0.68')into tmp_liujg_packed_based values('20190303','2019/03/03 08:50:01','006','0.32')into tmp_liujg_packed_based values('20190303','2019/03/03 10:50:01','006','1.78')into tmp_liujg_packed_based values('20190303','2019/03/03 10:50:01','007','0.32')into tmp_liujg_packed_based values('20190303','2019/03/03 15:50:01','008','1.01')into tmp_liujg_packed_based values('20190303','2019/03/03 17:50:01','008','1.68')into tmp_liujg_packed_based values('20190303','2019/03/03 10:30:01','010','1.88')into tmp_liujg_packed_based values('20190303','2019/03/03 15:50:01','010','0.32')into tmp_liujg_packed_based values('20190401','2019/04/01 09:50:00','008','0.18')into tmp_liujg_packed_based values('20190401','2019/04/01 11:50:00','009','0.88')into tmp_liujg_packed_based values('20190401','2019/04/01 12:35:00','009','0.32')into tmp_liujg_packed_based values('20190401','2019/04/01 17:50:00','010','1.01')into tmp_liujg_packed_based values('20190401','2019/04/01 12:35:00','011','1.68')into tmp_liujg_packed_based values('20190401','2019/04/01 12:50:00','011','0.88')into tmp_liujg_packed_based values('20190401','2019/04/01 15:50:00','012','0.32')into tmp_liujg_packed_based values('20190401','2019/04/01 17:50:00','012','1.68')into tmp_liujg_packed_based values('20190401','2019/04/01 12:35:00','012','1.88')into tmp_liujg_packed_based values('20190402','2019/04/02 09:50:00','009','0.18')into tmp_liujg_packed_based values('20190402','2019/04/02 19:50:00','009','1.18')into tmp_liujg_packed_based values('20190402','2019/04/02 17:50:00','010','0.88')into tmp_liujg_packed_based values('20190402','2019/04/02 16:50:00','010','0.32')into tmp_liujg_packed_based values('20190402','2019/04/02 19:50:00','010','0.32')into tmp_liujg_packed_based values('20190402','2019/04/02 16:50:00','013','0.88')into tmp_liujg_packed_based values('20190402','2019/04/02 19:55:00','013','0.88')into tmp_liujg_packed_based values('20190402','2019/04/02 20:55:00','013','1.01')into tmp_liujg_packed_based values('20190402','2019/04/02 19:55:00','014','0.32')into tmp_liujg_packed_based values('20190402','2019/04/02 20:55:00','014','1.01')into tmp_liujg_packed_based values('20190501','2019/05/01 09:50:00','001','1.18')into tmp_liujg_packed_based values('20190501','2019/05/01 09:55:00','002','0.32')into tmp_liujg_packed_based values('20190501','2019/05/01 10:55:00','002','0.32')into tmp_liujg_packed_based values('20190501','2019/05/01 10:00:00','007','0.88')into tmp_liujg_packed_based values('20190501','2019/05/01 10:55:00','015','0.88')into tmp_liujg_packed_based values('20190501','2019/05/01 10:00:00','015','0.32')into tmp_liujg_packed_based values('20190501','2019/05/01 14:00:00','017','1.01')into tmp_liujg_packed_based values('20190501','2019/05/01 15:00:00','017','1.01')into tmp_liujg_packed_based values('20190501','2019/05/01 15:30:00','018','0.88')into tmp_liujg_packed_based values('20190501','2019/05/01 16:30:00','018','0.68')into tmp_liujg_packed_based values('20190601','2019/06/01 09:50:00','008','1.38')into tmp_liujg_packed_based values('20190601','2019/06/01 14:50:00','017','0.88')into tmp_liujg_packed_based values('20190601','2019/06/01 11:50:00','019','1.01')into tmp_liujg_packed_based values('20190601','2019/06/01 13:50:00','019','0.88')into tmp_liujg_packed_based values('20190601','2019/06/01 14:50:00','019','0.68')into tmp_liujg_packed_based values('20190602','2019/06/02 09:50:00','021','0.38')into tmp_liujg_packed_based values('20190602','2019/06/02 13:50:00','012','0.88')into tmp_liujg_packed_based values('20190602','2019/06/02 15:50:00','012','1.12')into tmp_liujg_packed_based values('20190602','2019/06/02 13:59:00','023','0.88')into tmp_liujg_packed_based values('20190602','2019/06/02 15:50:00','023','1.01')into tmp_liujg_packed_based values('20190701','2019/07/01 09:50:00','023','0.38')into tmp_liujg_packed_based values('20190701','2019/07/01 13:50:00','023','0.78')into tmp_liujg_packed_based values('20190701','2019/07/01 14:50:00','008','0.68')into tmp_liujg_packed_based values('20190701','2019/07/01 14:50:00','024','0.68')into tmp_liujg_packed_based values('20190701','2019/07/01 15:50:00','024','1.68')into tmp_liujg_packed_based values('20190701','2019/07/01 14:50:00','026','0.68')into tmp_liujg_packed_based values('20190701','2019/07/01 18:50:00','026','1.68')into tmp_liujg_packed_based values('20190701','2019/07/01 14:50:00','027','0.68')into tmp_liujg_packed_based values('20190701','2019/07/01 19:35:00','027','1.11')into tmp_liujg_packed_based values('20190702','2019/07/02 09:50:00','026','0.78')into tmp_liujg_packed_based values('20190702','2019/07/02 11:50:00','026','0.78')into tmp_liujg_packed_based values('20190702','2019/07/02 13:50:00','028','1.01')into tmp_liujg_packed_based values('20190702','2019/07/02 14:35:00','028','0.88')into tmp_liujg_packed_based values('20190702','2019/07/02 15:35:00','028','0.33')select 1 from dual

解答

-- 第一问selectimp_date,-- 日期count(qimei) as daufromtmp_liujg_dau_basedwhere to_date(imp_date,'yyyy-mm-dd') > to_date('20190601','yyyy-mm-dd')group byimp_date
-- 第二问selecta.imp_date-- 日期,case when b.is_new='1' then '1'when b.is_new='0' then '0'else '2' end as is_new -- 用户类型,count(distinct a.qimei) user_num,sum(a.add_money) / count(distinct a.qimei) as mean_money -- 人均领取金额,count(1) / count(distinct a.qimei) as mean_get_count -- 人均领取次数
from(selectimp_date,qimei,add_moneyfrom tmp_liujg_packed_basedwhere to_date(imp_date,'yyyy-mm-dd') > to_date('20190601','yyyy-mm-dd')
) a
left join(selectimp_date,qimei,is_newfrom tmp_liujg_dau_basedwhere to_date(imp_date,'yyyy-mm-dd') > to_date('20190601','yyyy-mm-dd')) b on b.qimei=a.qimei and b.imp_date=a.imp_date
group by a.imp_date,case when b.is_new='1' then '1'when b.is_new='0' then '0'else '2' end
-- 第三问
selectmonth-- 月份,get_money_days-- 领取天数,count(qimei) as user_count-- 用户数,sum(tol_money) / count(qimei) as mean_money-- 人均领取金额,sum(tol_cnt) / count(qimei) as mean_get_count-- 人均领取次数
from(selectto_char(to_date(imp_date,'yyyy-mm-dd'),'yyyymm') as month,qimei,count(distinct imp_date) as get_money_days,sum(add_money) as tol_money,count(1) as tol_cnt
from (selectimp_date,qimei,report_time,add_moneyfrom tmp_liujg_packed_basedwhere to_date(imp_date,'yyyy-mm-dd') >= to_date('20190301','yyyy-mm-dd'))
group by  to_char(to_date(imp_date,'yyyy-mm-dd'),'yyyymm'),qimei)
group by month,get_money_days
-- 第四问
select a.imp_mon as month-- 月份,case when b.qimei is not null then '1' when b.qimei is null then '0'else null end as is_packet_user -- 用户类型 1红包用户 0非红包用户,count(a.qimei) as user_count,sum(a.active_days) / count(a.qimei) as mean_days_in_month
from (selectsubstr(imp_date,1,6) as imp_mon,qimei,count(imp_date) as active_daysfrom tmp_liujg_dau_basedwhere to_date(imp_date,'yyyy-mm-dd') >= to_date('20190301','yyyy-mm-dd')group by substr(imp_date,1,6),qimei ) a
left join(select substr(imp_date,1,6) as imp_mon,qimeifrom tmp_liujg_packed_basedwhere to_date(imp_date,'yyyy-mm-dd') >= to_date('20190301','yyyy-mm-dd')group by substr(imp_date,1,6),qimei) b on b.imp_mon=a.imp_mon and b.qimei=a.qimei
group by a.imp_mon,case when b.qimei is not null then '1' when b.qimei is null then '0'else null end
-- 第五问
selecta.month,a.qimei,case when b.imp_date is not null then b.imp_date else null end as register_date
from (selectto_char(to_date(a.imp_date,'yyyy-mm-dd'),'yyyymm') as month,qimeifrom tmp_liujg_dau_basedgroup by to_char(to_date(a.imp_date,'yyyy-mm-dd'),'yyyymm'),qimeiwhere to_date(imp_date,'yyyy-mm-dd') >= to_date('20190301','yyyy-mm-dd')) a
left join(selectqimei,imp_datefrom tmp_liujg_dau_basedgroup by qimei,imp_datewhere is_new='1' and to_date(imp_date,'yyyy-mm-dd') >= to_date('20190301','yyyy-mm-dd')) b on b.qimei=a.qimei
-- 第六问
select a1.day,count(a1.qimei) as dau,count(case when a2.day-a1.day=1 then a1.qimei else null end) / count(a1.qimei) as retain_rate,count(case when b.qimei is not null then case when a2.day-a1.day=1 then a1.qimei else null end else null end)/ decode(count(case when b.qimei is not null then a1.qimei else null end),0,1,count(case when b.qimei is not null then a1.qimei else null end)) as pick_user_rate,count(case when b.qimei is null thencase when a2.day-a1.day=1 then a1.qimei else null end else null end) / decode(count(case when b.qimei is null then a1.qimei else null end),0,1,count(case when b.qimei is null then a1.qimei else null end)) as unpick_user_rate
from(select to_date(imp_date,'yyyy-mm-dd')  as day,qimeifrom tmp_liujg_dau_basedwhere to_date(imp_date,'yyyy-mm-dd') >= to_date('20190301','yyyy-mm-dd')) a1
left join(select to_date(imp_date,'yyyy-mm-dd') as day,qimeifrom tmp_liujg_dau_basedwhere to_date(imp_date,'yyyy-mm-dd') >= to_date('20190301','yyyy-mm-dd')) a2 on a2.qimei=a1.qimei
left join(selectto_date(imp_date,'yyyy-mm-dd') as day,qimeifrom tmp_liujg_packed_basedwhere to_date(imp_date,'yyyy-mm-dd') >= to_date('20190301','yyyy-mm-dd')group byimp_date, qimei ) b on b.day=a1.day and b.qimei=a1.qimei
group by a1.day
-- 第七问
selectimp_date,qimei,add_money as money
from(selecta.imp_date,a.qimei,a.report_time,a.add_money,row_number()over(partition by a.imp_date,a.qimei order by a.report_time asc) as report_rank
from (selectimp_date,qimei,add_money,report_timefrom tmp_liujg_packed_basedwhere to_date(imp_date,'yyyy-mm-dd') >= to_date('20190301','yyyy-mm-dd')
)a
inner join(selectimp_date,qimeifrom tmp_liujg_dau_basedwhere to_date(imp_date,'yyyy-mm-dd') >= to_date('20190301','yyyy-mm-dd')and is_new=1
)b on b.imp_date=a.imp_date and b.qimei=a.qimei)
where report_rank = 1
-- 第八问
selectimp_date-- 注册日期,qimei-- 用户唯一标识,report_time as first_action_time -- 首次领红包时间,n1_report_time as second_action_time -- 第二次领红包时间,to_date(n1_report_time,'yyyy-mm-dd hh24:mi:ss') - to_date(report_time,'yyyy-mm-dd hh24:mi:ss') as delta_times -- 时间差
from(selectb.imp_date,a.qimei,a.report_time,row_number()over(partition by a.imp_date,a.qimei order by a.report_time asc) as report_rank -- 领红包时间的排序,lead(a.report_time,1)over(partition by a.imp_date,a.qimei order by a.report_time asc) as n1_report_time -- 第二次领红包的时间
from(selectimp_date,qimei,report_timefrom tmp_liujg_packed_basedwhere to_date(imp_date,'yyyy-mm-dd') >= to_date('20190301','yyyy-mm-dd'))a
inner join(selectimp_date,qimeifrom tmp_liujg_dau_basedwhere to_date(imp_date,'yyyy-mm-dd') >= to_date('20190301','yyyy-mm-dd')and is_new=1
)b on b.imp_date=a.imp_date and b.qimei=a.qimei)
where report_rank = 1
-- 第九问
9.计算2019年6月1日至今,每日领取红包用户领取金额的中位数
输出维度:imp_date(日期)
输出指标:mid_money(用户当日领取红包金额的中位数)
selectimp_date-- 日期,median(to_number(add_money)) as mid_money -- 用户当日领取红包金额的中位数
from tmp_liujg_packed_based
where to_date(imp_date,'yyyy-mm-dd') >= to_date('20190601','yyyy-mm-dd')
group by imp_date

数据分析师-SQL笔试题-做透这道题就够了相关推荐

  1. 数据分析师python笔试题_腾讯2020春招数据分析师第一轮线上面试笔试

    面试部分 和我一起参加此次腾讯2020春招的人似乎都是留学生,整个流程就是先自我介绍,然后 选择三个题(线上笔试题前三道)进行回答,每个人5分钟,形式是线上面试,在面试之后直接线上作答笔试部分时间大概 ...

  2. 阿里巴巴2011数据分析师实习生笔试题

    职位名称:数据分析师 招聘人数:若干 [职位描述] 1.负责业务数据收集整理,对多种数据源进行深度诊断性组合分析.挖掘.深度分析和建 模 2.提供效能报告,对市场活动终端体现给予评估,为公司运营决策. ...

  3. 数据分析师要求mysql的_做数据分析师sql需要掌握到什么程度

    SQL是数据分析师必备的技能,那SQL究竟需要掌握到什么程度呢?这篇文章主要分享一下作为数据分析师SQL的学习路线. 很多人喜欢一上来就推荐好几本书,但是这些书晦涩难懂,对于初学者入门非常不友好.入门 ...

  4. 商汤科技20年秋招智慧城市-数据运营工程师笔试题(2019.8.19)

    套题 商汤20年秋招智慧城市-数据运营工程师笔试题 题型 选择 * 20 + 问答 * 3 完成时间 60分钟 ❤️ 「更多数据分析真题」 <数据分析真题日刷 | 目录索引> ❤️ 「更多 ...

  5. sql 以a开头的所有记录_#9#猴子聊数据分析之常见的SQL笔试题和面试题(下)

    题目来源 猴子:常见的SQL笔试题和面试题(下)​zhuanlan.zhihu.com 1.SQL语言允许使用通配符进行字符串匹配的操作,其中'%'可以表示:多个字符 2.通过 SQL,如何从 &qu ...

  6. oracle sql 题目,oracle sql笔试题

    oracle sql笔试题 一. 数据库 ORACLE 虽然这些题目都可以G到,但还是要考察一下您现在的常态水平,:) T表:(字段:ID,NAME,ADDRESS,PHONE,LOGDATE) E表 ...

  7. 常见的SQL笔试题和面试题:SQL经典50题

    常见的SQL笔试题和面试题(上):经典50题 已知有如下4张表: 学生表:STUDENT(S#,SNAME,SAGE,SSEX) 课程表:COURSE(C#,CNAME,T#) 成绩表:SC(S#,C ...

  8. mysql数据生产数据分析_基于MySQL玩转SQL数据分析课程 互联网数据分析师-SQL数据分析实战视频教程...

    基于MySQL玩转SQL数据分析课程 互联网数据分析师-SQL数据分析实战视频教程 课程目录 (1)SQL与数Ju分析;目录中文件数:23个 (1) 开课-课时3SQL与数Ju库的价值.flv (2) ...

  9. 2018清华-伯克利深圳学院数据科学方向笔试题

    2018清华-伯克利深圳学院数据科学方向笔试题

最新文章

  1. html与html5论文区别,HTML、XML、XHTML和HTML5的异同
  2. 【python】 针对python3 下无法导入tkinter
  3. Linux内核模块简介
  4. SpringMVC经典系列-14自己定义SpringMVC的拦截器---【LinusZhu】
  5. 计算机二级办公软件aoa 百度云,计算机二级办公 考生注意事项(二级AOA)
  6. 控制面板项 .cpl 文件说明
  7. 远程桌面端口修改批处理
  8. 什么是 USB 3.1
  9. POJ 1661 DP
  10. 我坚决不能容忍_出轨坚决不能忍,3星座女对出轨0容忍,敢出轨就等着吧
  11. 消防巡检控制器,消防泵巡检控制柜专用元件
  12. OSGB 倾斜摄影数据生产完成后裁剪模型问题
  13. 小学计算机老师实习报告,精选信息技术教师实习报告3篇
  14. Docker一探究竟
  15. 启用了被称为 HTTP 严格传输安全(HSTS)的安全策略,Firefox 只能与其建立安全连接
  16. 计算机里的二进制什么意思,二进制是什么,为什么计算机要使用二进制?
  17. 更改jenkins插件地址为国内源地址
  18. 小孩子爱玩手机学计算机编程好吗,学习编程教育对孩子的哪些重要意义
  19. Convex Optimization 凸优化学习 第三章 凸函数(一)
  20. 北京机动车“单双”限行:市府温情、市民支持

热门文章

  1. A pseudo attribute name is expected.解决方法
  2. L1-078 吉老师的回归 (15 分) C语言
  3. ThinkAdmin for PHP后台管理系统
  4. [ZT]组策略软件分发部署
  5. 计算机通信中ip,macid的主要作用和区别
  6. 好记心不如烂笔头,ssh登录 The authenticity of host 192.168.0.xxx can't be established. 的问题
  7. 竞技时代引领VR电竞,WVA2018全新出发!
  8. MySQL安全分析:缓解MySQL零日漏洞
  9. 社区外卖跑腿小程序怎么做?(拼团拼车模块+APP开发费用)
  10. 业绩承压来临,京东方还能抗周期多久