昨晚阿里巴巴的一道面试题分析

阿里巴巴—蚂蚁金服Java面试题 立即下载

昨晚参加阿里巴巴数据开发工程师的一道sql语句题搞蒙了,今早重新梳理了一下和大家分享一下:

【题】

蚂蚁金服需要评估用户的信用风险,用于为用户提供基于信用的各种服务。每个用户有一些基本信息(比如学历,年龄等)。另外每个用户存在一个或者多个支付宝账号,其中一个账号会作为用户的主账号, 假设主账号的规则是账户余额最多的账号,如果两个账户余额相同,则选择注册时间较早的账户。具体表结构设计如下:

用户表(users),账户信息表(accounts)

create table users(user_id int,age int,degree char(1));

create table accounts(id int,user_id int,balance double,year int);

1) 假设用户的信用分是基于一下规则计算的: 

a) 基础分为300分

b) 年龄在[18-30]之间,增加10分;在 [31-59]之间,增加20分

c) 学历为A等级增加20分;学历为B等级增加10分

d) 主账户的余额大于等于100000,增加20分;[10000-99999],增加10分

e) 主账户的注册时间为5年以上增加20分;1年到5年之间增加10分

请用SQL语句,计算每个用户的信用分。


【思路】

 第一眼想到用case.....when...但这个之前确实没怎么用过,不太熟悉,先建立一个表测试一下该语句用法:

测试表:测试case when then else end的用法

create table tt(id int,name varchar(20),sal float,des varchar(20));
insert into tt values(1,'n',1222,'beijing');
insert into tt values(2,'nn',122,'beijing');
insert into tt values(3,'nnn',112,'hunan');
insert into tt values(4,'nnnn',11,'hunan');

select 300+c+b from
(select id,sal,
(case 
when id<=2 then 2 
when id>2 then 3 end ) as c ,
(case 
when sal<=120 then 9 
when sal>120 then 5 end ) as b from tt ) s where s.id=2;

创建题目中的主表:

create table users(user_id int,age int,degree char(1));
create table accounts(id int,user_id int,balance double,year int);

插入测试数据:

insert into users values(1,25,'A');
insert into accounts  values(1,1,300000,4);
insert into accounts  values(2,1,30000,3);
insert into accounts  values(3,1,5000,2);

insert into users  values(2,30,'B');
insert into accounts  values(4,2,28000,2);

insert into users  values(3,28,'B');
insert into accounts  values(5,3,44000,5);

解决问题:

select 300+ag+de+ba+ye from 
(select s.user_id,
(case 
when  18<=age<=30 then 10
when  31<=age<=59 then 20 end ) as ag ,
(case 
when  degree='A' then 20
when  degree='B' then 10 end ) as de  ,
(case 
when   balance>=100000 then 20
when  10000<=balance<99999 then 10 end ) as ba,
(case 
when   year>5 then 20
when  1<year<=5 then 10 end ) as ye from (select a.user_id,u.age,u.degree,a.balance,a.year,max(a.balance) from accounts a,users u where u.user_id=a.user_id group by a.user_id) s) ss where ss.user_id=1;


DataAnswer导航:http://www.dataanswer.top

RestFul API 详解 RESTful API 经常也被叫做 REST API,它是基于 REST 构建的 API。RESTful API 可以让你看到 URL+Http Method 就知道这个 URL 是干什么的,让你看到了 HTTP 状态码(status code)就知道请求结果如何。 阅读详情

相关推荐

离散数学期末考试试卷(两套)-熟悉题型

3.设集合A={a,b,c,d}上有自反关系R={,,,,},对称关系S={,,,}。6.设集合A={1,2,3},B={u,v,w},C={a,b,c},f是集合A到集合B上的映射,g是集合B到集合C上的映射,f={, , },g={},则复合函数g。5. 设集合A={a,b,c,d,e},下列选项中哪一个集合不是A的划分( )。

muse3159546973的博客 6957

蚂蚁金服SQL笔试题解答,同时遇到hive使用spark执行时不兼容问题。

蚂蚁金服SQL笔试题解答,同时遇到hive使用spark执行时不兼容问题。题目:用SQL计算:计算用户连续完成订单间隔最大的天数和最小的天数。 一、按照题目需求解答(只需要找出用户的最大和最小连续区间):代码如下: 执行结果: 二、思维扩展 需求:找出每个用户的最大和最小连续区间,并且求出最大和最小的持续天数。 分析:注意点,每个用户的...

A_static的博客 901

⭐️白嫖的阿里云认证⭐️ 【真题&参考答案】:大模型Clouder认证:利用大模型提升内容生产能力

【摘要】真题「大模型Clouder认证:利用大模型提升内容生产能力」

davidkorhenn的博客 1925

阿里巴巴2016java研发笔试附加题

1. 蚂蚁金服需要评估用户的信用风险,用于为用户提供基于信用的各种服务。每个用户有一些基本信息(比如学历,年龄等)。另外每个用户存在一个或者多个支付宝账号,其中一个账号会作为用户的主账号, 假设主账号的规则是账户余额最多的账号,如果两个账户余额相同,则选择注册时间较早的账户。具体表结构设计如下: 用户表(users),账户信息表(accounts)   1) 假

枝寒不栖 1483

DC竞赛 国能日新功率预测题 rank21 解决方案(适合新手)

DataCastle国能日新光伏功率预测 数据异常处 本题在测试集中提供了时间、辐照度、风速、风向、温度、压强、湿度、实发辐照度8个特征,以及标签**实际功率**。 而在训练集中只有前七个特征,无实发辐照度。 策略 在观察了数据之后,我们确定实发辐照度是一个强力特征,于是我们采取了stacking的策略: 1. 第一次训练以实发辐照度为标签,预测 测试集的实发辐照度 2....

yyhhlancelot的博客 7294

语义分割系列7-Attention Unet(pytorch实现)

本文介绍了AttentionUnet模型和其主要中心思想,并在pytorch框架上构建了Attention Unet模型,构建了Attention gate模块,在数据集Camvid上进行复现。

yumaomi的博客 2万+

几个 Ceph 性能优化的新方法和思路

0. 常规的 Ceph 性能优化方法 (1). 硬件层面 硬件规划:CPU、内存、网络 SSD选择:使用 SSD 作为日志存储 BIOS设置:打开超线程(HT)、关闭节能、关闭 NUMA 等 (2). 软件层面 Linux OS:MTU、read_ahead 等 Ceph Configurations 和PG Number 调整:使用 PG 计算公式(Total PGs = (Total_number_of_OSD * 100) / max_replication_count)计算。 CRU.

jiangbb8686的博客 3459

FFTW库安装与使用(3.3.5版本)

FFTW库安装与使用一、FFTW库介绍与下载二、FFTW库安装三、FFTW库测试 一、FFTW库介绍与下载   FFTW ( the Faster Fourier Transform in the West) 是一个快速计算离散傅里叶变换的标准C语言程序集,其由MIT的M.Frigo 和S. Johnson 开发。可计算一维或多维实和复数据以及任意规模的DFT,且运行速度比Eigen和opencv自带的FFT库函数快10倍以上。   下载链接:http://www.fftw.org/install/wind

Jhon_ranble的博客 2万+

卧槽!阿里巴巴《算法笔记》开源了,完整版PDF开放下载!

昨晚逛GitHub,无意中看到一位阿里大佬(https://github.com/halfrost)的算法刷题笔记,感觉发现了宝藏!有些小伙伴可能已经发现了,但咱这里还是忍不住安利一波,...

简说Python的博客 1221

YOLOv11改进策略【Head】| AFPN渐进式自适应特征金字塔,增加针对小目标的检测头(附模块详解和完整配置步骤)

一、本文介绍 本文利用AFPN对YOLOv11的网络模型进行优化提升。AFPN采用渐近式融合及自适应空间融合操作。通过渐近式架构,逐步整合不同层级特征,有效避免非相邻层级间因语义差距过大导致的信息丢失或降级问题,确保在多尺度特征融合过程中既能保留高层语义信息,又能融入低层细节特征。本文将AFPN应用于YOLOv11中,并配置了针对小目标的检测头,能显著增强模型对不同尺度目标的检测能力,使其在复杂场景下更聚焦于目标物体特征,减少背景等无关信息的影响。 专栏目录:YOLOv11改进目录一览 | 涉及卷积层、

Limiiiing的博客 2718

数据仓库数据质量监控和处理方法最佳实践

指的是检查数据是否存在反常或者错误的情况,例如数值反常地过大或者过小,或者超过记录的波动值,对应的规则包括数值波动检查,最大值、最小值检查,跨表准确性等。指的是检查数据是否存在缺失的情况,这里的缺失可以是整个数据集的记录缺失,也可以是某个字段记录的缺失,对应的规则包括空值检查,表总行数检查。指的是检查数据是否符合规范,是否按照规定的格式存储,对应的规则包括正则表达式检查,字段长度检查,枚举集合检查,数值范围等。指的是检查哪些数据是重复数据或者数据的哪些属性是重复的,对应的规则例如主键唯一性检查。

大模型大数据攻城狮的专栏 899

【25暑期实习招聘】阿里巴巴-淘天集团-猫超&amp;食品生鲜技术

实习两周了感觉啥也没干,看文档,然后就是ld给实习生大课讲解公司技术和业务,还会把他们遇到的问题给我。PCG三面过后,流程一直显示复试啥情况啊?OPPO手机25届寻梦实习内推【X6679121】2025届暑期实习寻梦实习3.11开启!字节三面完两天了还没消息三面面试官问我可以先来实习不,我说最近要忙毕业,他问我是不是要到六月差不多毕。#腾讯##腾讯实习基地##腾讯实习#泡了一个多星期居然官网到HR面我靠!楼主研二 拿到了嵌入式日常实习的两个offer,一个是海康,一个是外企,外企氛围很舒服 但是做的都是。

华鑫的专栏 1352

Java小白入门200例81之Java接口

作者简介 作者名:编程界明世隐 简介:优快云博客专家,从事软件开发多年,精通Java、JavaScript,博主也是从零开始一步步把学习成长、深知学习和积累的重要性,喜欢跟广大ADC一起打野升级,欢迎您关注,期待与您一起学习、成长、起飞! 引言 很多Java初学者问我,新手明明很用心、很努力学习的Java知识,转头又忘记了,很让人犯愁,小白如何能够快速成长、成为大牛呢? 其实要成为大神的技巧只有一个:“多学多练”,于是明哥就整理了比较典型的练习实例,通过练习能够快速提升编码技巧和熟练度,让你在成为大

编程界明世隐的博客 1358

最全面试考点与面试技巧,大厂直通车!

反思 昨晚去北京大望路阿里面试, 产生了严重的挫败感, 羞愧难当. 比不得从大学就有目标有理想, 一直在为目标努力学习技术的同学, 在大学唯一能拿得出手的就是参加了电子设计大赛, 学了点嵌入式的知识. 毕业后开始做android, 说得好听点叫做项目, 实际上就是搬代码, 真正记到脑子里的有多少呢? 从百度Google搬到自己的代码里, 同一个问题要遇到好几次才能记住, 很多问题搬完了还不知道为什么这么做. ReactNative都做完一个项目了, 生命周期都记不清楚, 这样的工作有什么意义呢? 进步太慢,

m0_57066056的博客 162

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

链动2+1商城系统开发详细需求/步骤方案/案例设计/成熟源码

第一次体验线下面试,驱动开发,base东莞,2025届的实习专场,要求半年实习。总的来说基本上都是看。面试感受笔试完一个月之后,昨晚约到了专业面试面试官挺好的,1v1 开视频面试,面试大概持续了半小时1。投了很多战略分析,商业分析,数据分析,产品,策略,运营的岗位,是不是我的简历根本不沾边,或者是我的项。基本条件:安徽人,家境一般,年龄27目前选择:1.一个是去杭州某安防公司工作,算法工程师,年薪大概2。终于到我了,悬着的心放了下来,一个87,一个90.5,后一个提了一堆意见还给了90分,刀子嘴豆腐心的。

2301_78234743的博客 917

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Java开发自学技巧!为什么@Value可以获取配置中心的值

前言 Spring让我们可以更快,更轻松,更安全地进行Java编程。Spring对速度,简单性和生产率的关注使其成为世界上最受欢迎的Java框架。 像阿里巴巴,亚马逊,谷歌,微软等在内的所有科技巨头对Spring都有很大的贡献,因此Spring经常在大厂面试的时候被问到,下面我选了几道关于pring源码的面试题,看大家能不能回答出来: IOC源码主要流程 bean相互依赖注入问题 为什么要使用spring Spring事务在controller层不起作用的原因 如何用基于 Java 配置的方式配置 Spr

m0_56252652的博客 136

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

ceph文件系统测试

http://tech.uc.cn/?p=1223

IT_YUAN的专栏 1589

Ceph优化系列(一):Ceph架构及性能优化

转载:Ceph架构及性能优化 对分布式存储系统的优化离不开以下几点: 1. 硬件层面 硬件规划 SSD选择 BIOS设置 2. 软件层面 Linux OS Ceph Configurations PG Number调整 CRUSH Map 其他因素 硬件层面 1、 CPU ceph-osd进程在运行过程中会消耗CPU资源,所以一般会为每一个ceph-osd进程绑...

Yannick Jiang 的专栏 3228

算法工程师的一些面试题

有一个数组 int array[100];本来应该存放的数为1~100,但是有两个数据丢失了,值变成了0。问如何找出丢失的那两个数? 思路:

夏天的风 1586

高级工程师笔试题

1、什么是js跨域问题?说出3种js跨域解决方案2、数据库设计、优化心得3、什么是值类型、引用类型?关键词:内存分配、赋值、参数传递(out、ref)、释放4、介绍微服务,以及网关、服务注册、熔断降级5、介绍.Net Core的中间件6、介绍OAuth2.0、JWT7、什么是MQ、你用过那些MQ,什么场景下使用?8、如何实现自动化部署 答: 1、一个域上加载的脚本获取或操作另一个域上...

383
上一篇: 拉勾网大数据相关岗位数据爬虫分析
下一篇: R语言时间序列基础库zoo
JavaChaoCo
博客等级 码龄12年 67粉丝 36原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值