首页 / SQL面试
#
SQL面试
#20937次浏览 176人互动
此刻你想和大家分享什么
2024-11-21 18:07
对外经济贸易大学 数据分析师 点赞 评论 收藏
分享
2023-05-22 12:24
北京邮电大学 大数据开发工程师 SQL大厂面试题分享:
不讲武德的大菠萝很爱...:各位大佬,看看我的咋样,用hive写的
select t1.user_id ,t2.recent_login_date from (
select
user_id ,
login_date ,
datediff(login_date ,lag(login_date) over(partition by user_id order by login_date ) ) as dt
from user_login
) t1
left join
(select max(login_date) recent_login_date,user_id from user_login group by user_id )t2 on t2.user_id = t1.user_id
where t1.dt >=5
点赞 评论 收藏
分享
2023-09-14 10:46
清华大学 运营 点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
2022-08-05 21:49
中国地质大学 数据分析师 #SQL#SQL题求助#数据分析笔试
Neptune🍉�...:select a.name_id,a.order_country,ifnull(b.cnt,0) as order_counts
from sell_information a
left join
(select name_id,order_country,count(order_id) cnt
from sell_information
group by name_id,order_country) b
on a.name_id=b.name_id and a.order_country=b.order_country
首先就是查找每个用户每个国家的消费订单数,也就是得到表b(因为目前表b是不含订单为0的国家的),然后再让原表进行左连接,左连接的目的就是保留原有的国家,连接之后的新表就含有每个国家了,然后再用ifnull函数将这些没有订单数的国家的订单数量变成0.
点赞 评论 收藏
分享
数据分析SQL面试题求解
舞哈哈哈:使用MySQL做的,个人理解
select t1.order_add_user, t1.num, count(distinct t2.num)+1 as rank,
(case when count(distinct t2.num)+1<=3 then t1.num*50+1000 else t1.num*50 end) as bonus
from
(select order_add_user, sum(quantity) as num, date_format(order_add_time,"%Y-%m") as month
from order
where order_add_time<=date_format(now(),"%YYYY-%mm-%dd") and
order_add_time>date_format(now(),"%Y-%m-01")
group by order_add_user
order by num desc
limit 10 ) t1
left join
(select order_add_user, sum(quantity) as num, date_format(order_add_time,"%Y-%m") as month
from order
where order_add_time<=date_format(now(),"%YYYY-%mm-%dd") and
order_add_time>date_format(now(),"%Y-%m-01")
group by order_add_user
order by num desc
limit 10 ) t2 on t1.num<t2.num
group by t1.order_add_user
order by t1.num desc;
点赞 评论 收藏
分享
点赞 评论 收藏
分享
2022-03-01 16:36
上海电机学院 数据其它 点赞 评论 收藏
分享
2022-09-21 19:17
中国传媒大学 大数据开发工程师 点赞 评论 收藏
分享
点赞 评论 收藏
分享
点赞 评论 收藏
分享
2022-05-17 15:23
华北水利水电大学 数据其它 点赞 评论 收藏
分享
sql面试题:求助
秦思远:我觉得应该是
select * from t WHERE name in (SELECT name from t GROUP BY `name` HAVING count(name) = 1) LIMIT 10;
点赞 评论 收藏
分享