ETL工程师笔试题
1、参考答案
1)建表
CREATE TABLE `ta` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cx` varchar(20) DEFAULT NULL,
`qy` varchar(20) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8;
CREATE TABLE `tb` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cx` varchar(20) DEFAULT NULL,
`qy` varchar(20) DEFAULT NULL,
`jg` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
CREATE TABLE `tc` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`cx` varchar(20) DEFAULT NULL,
`qy` varchar(20) DEFAULT NULL,
`jg` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8;
存储过程:
DROP PROCEDURE IF EXISTS `query_a_and_b`;
DELIMITER ;;
CREATE PROCEDURE query_a_and_b() READS SQL DATA
BEGIN
DECLARE cxc varchar(20);
DECLARE qyc varchar(20);
DECLARE jgc INT;
DECLARE s INT DEFAULT 0 ;
DECLARE consume CURSOR FOR SELECT cx,qy,jg FROM tb;
-- DECLARE CONTINUE HANDLER FOR SQLSTATE '02000' SET num = 1;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET s=1;
OPEN consume;
FETCH consume into cxc,qyc,jgc;
while s <> 1 DO
if(qyc='全国')THEN
INSERT INTO tc(cx,qy,jg)
SELECT a.cx,b.qy,a.jg from tb a left JOIN ta b on b.cx=a.cx WHERE b.cx=cxc;
ELSEif(qyc='其他')THEN
INSERT INTO tc(cx,qy,jg)
SELECT a.cx,b.qy,a.jg from tb a left JOIN ta b on b.cx=a.cx WHERE a.qy=qyc and b.qy not in (
select t.qy from tb t WHERE t.cx=b.cx
);
ELSE
INSERT INTO tc(cx,qy,jg)
SELECT a.cx,a.qy,a.jg from tb a WHERE a.cx=cxc and a.qy=qyc;
END IF;
FETCH consume into cxc,qyc,jgc;
END WHILE;
CLOSE consume;
END;;
DELIMITER;
CALL query_a_and_b();
结果:
2、参考答案
借用1题表tb,数据如下:
sql如下:
第一种:
CREATE VIEW view_name AS
SELECT a.COHEV,b.REIZ,a.jg from
(select
(case when cx = 'COHEV' then qy end) as COHEV,
jg
from tb) a JOIN
(select
(case when cx = 'REIZ' then qy end) as REIZ,
jg
from tb) b on a.jg = b.jg
WHERE a.COHEV is not null AND b.REIZ is not null
第二种:
select max(COHEV) COHEV,max(REIZ) REIZ,jg from
(select
(case when cx = 'COHEV' then qy end) as COHEV,
(case when cx = 'REIZ' then qy end) as REIZ,
jg
from tb)b GROUP BY jg;
欢迎指正
未完待续。。。。
ETL工程师笔试题的更多相关文章
- 转:一份基础的嵌入式Linux工程师笔试题
一. 填空题: 1. 一些Linux命令,显示文件,拷贝,删除 Ls cp rm 2. do……while和while……do有什么区别? 3. Linux系统下.ko文件是什么文件?.so文件是什么 ...
- iOS开发工程师笔试题
iOS开发工程师笔试题 1. Object-c的类可以多重继承么?可以实现多个接口么?Category是什么?重写一个类的方式用继承好还是分类好?为什么? Object-c的类不可以多重继承:可以 ...
- PHP工程师笔试题
PHP工程师笔试题 提示:请将答案写在另外一张空白纸上,并在30分钟内完成. PHP 请写出include.require.include_once.require_noce的区别. include是 ...
- Java工程师笔试题整理[校招篇]
Java工程师笔试题整理[校招篇] 隔着两个月即将开始校招了.你是不是也想借着这个机会崭露头角,拿到某些大厂的offer,赢取白富美.走上人生巅峰?当然如果你还没能打下Java基础,一定要先打 ...
- 复盘鼎甲科技2020web开发工程师-笔试题(校招)
复盘鼎甲科技2020web开发工程师-笔试题(校招) 本试卷以W3C规范为准,JavaScript使用ES5标准,除特别说明外,不考虑各个浏览器之间差异. 一.多项选择题 以下标签是行内元素(inli ...
- 阿里巴巴集团2016校园招聘-Python工程师笔试题(附加题+部分答案)
前言 第一次网上笔试,被虐的很惨.一是不太习惯,最主要的是还是自己对Python的掌握,还不够熟练.下面是这次阿里笔试相关信息 笔试时间是,2015年8月23日,10:00——12:00 对于笔试题, ...
- c#软件工程师笔试题
近来有打算重新找工作,还没提离职,投了几家公司简历,其中一家比较中意的公司给发了面试题,其实,好像是好几天前的事了,主要是Gmail邮箱很少用,所以一直都没去看,今天看到题目给解了. 题目如下: 题目 ...
- 2015-01-19 .Net 软件工程师 笔试题
填空题 1.String是__类型(值类型或引用类型) 2.int的基类是__ 3.实现__的类,可以应用foreach语句 4.要输出一段XML文档,用__类来实现能够确保输出正确格式的XML,输出 ...
- 2015-01-16 .Net 中级软件工程师 笔试题
一 C#方面 1.请简述多线程需要考虑的主要因素 答:1.线程管理 同一核上的两个线程不会以两倍的时长完成,可能需要用两倍再加10 %左右的时间来完成.与一个线程相比较的话,三个线程在同一核上想占用1 ...
随机推荐
- 百度SMS发送短信C#
/// <summary> /// 百度接口签名帮助类 /// </summary> public class BaiduApiHelper { #region 构造函数 // ...
- chrome的无头(headless)模式
chrome的无头(headless)模式 用selenium调用phantomjs浏览器的方式几乎可以爬取任何网站,但是与调用chrome相比,phantomjs的稳定性还是不够.如果能让chrom ...
- 常见GC算法,CMS以及G1的垃圾回收过程,CMS的各个阶段哪两个是Stop the world的,CMS会不会产生碎片,G1的优势。
常见GC算法 在C/C++中是由程序员自己去申请.管理和释放内存的,因此没有GC的概念.而在Java中,专门有一个用于垃圾回收的后台线程来进行监控.扫描,自动将一些无用的内存进行释放.下面介绍几种常见 ...
- Qt中 布局管理器失效问题
1 问题描述 在Qt5.12.0 版本中,使用 自动管理器发生,无法生效 2 问题代码 Widget::Widget(QWidget *parent) : QWidget(parent), butto ...
- 常用SQL指令
SQL去重复语句:select 改为Delete select * from TRWTC01 where ITEM_NAME in (select ITEM_NAME from TRWTC01 gro ...
- Delphi文字转语音TTS【支持选择语音库,播放,暂停,开始,停止,生成语音文件,设置音量,设置语速】
作者QQ:(648437169) 点击下载➨文字转语音TTS [Delphi 文字转语音TTS]调用系统自带的TTS组件,支持XP,vista,win7,win8,win10系统,支持选择语音库,播放 ...
- 在DCEF3中使用较少的dll文件?
您可以使用以下属性: GlobalCEFApp.CheckCEFFiles:设置为FALSE以跳过所有CEF二进制文件检查功能. GlobalCEFApp.LocalesRequired:一个逗号分隔 ...
- 大数据之路【第十篇】:kafka消息系统
一.简介 1.简介 简 介• Kafka是Linkedin于2010年12月份开源的消息系统• 一种分布式的.基于发布/订阅的消息系统 2.特点 – 消息持久化:通过O(1)的磁盘数据结构提供数据的持 ...
- Python之路【第十二篇】:Python面向对象高级
一.反射 1 什么是反射 反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问.检测和修改它本身状态或行为的一种能力(自省).这一概念的提出很快引发了计算机科学领域关于应用反射性的研究 ...
- pytest_allure2 生成html报告
前言 allure是一个report框架,支持java的Junit/testng等框架,当然也可以支持python的pytest,也可以集成到Jenkins上展示高大上的报告界面. 环境准备 ...