大数据笔试题_第一阶段配套笔试题02

  1. 已知一个字符类型的日期:2022-01-20,请用SQL显示出此日期对应的下个月的月份,结果要求为Number类型(202201)。
参考答案

sql

SELECT to_date('2022-01-20', 'yyyy-mm-dd') a1,add_months(to_date('2022-01-20', 'yyyy-mm-dd'), 1) a2,to_char(add_months(to_date('2022-01-20', 'yyyy-mm-dd'), 1), 'yyyymm') a3,to_number(to_char(add_months(to_date('2022-01-20', 'yyyy-mm-dd'), 1),'yyyymm')) a4,CAST(to_char(add_months(to_date('2022-01-20', 'yyyy-mm-dd'), 1),'yyyymm') AS NUMBER) a5FROM dual;
  1. 一个来源表TEMP2_F,数据如下,请用SQL删除表中的重复记录。

ID

CODE

1

D1

2

D2

1

D1

3

D2

2

D3

2

D2

3

D1

参考答案

sql

CREATE TABLE temp2_f (ID NUMBER(2),CODE VARCHAR2(3));SELECT * FROM temp2_f;
解:
--用rowid找出重复的数据
--找出每个重复数据里最小的那个(在每个重复只有两个的情况才下)
--那如果有个重复有三个怎么办?--groupby所有能输出的值
--用delete表语句删除重复的数据(not in…………)
---删除表数据:DELETE FROM 表名 WHERE 条件;DELETE FROM temp2_fWHERE ROWID NOT IN(SELECT MIN(ROWID) FROM temp2_f f GROUP BY f.id, f.code);
COMMIT;

3.来源表TEMP3_F,字段类型及数据如下:

字段类型

DATE

VARCHAR2(20)

VARCHAR2(20)

NUMBER

字段名

INPUT_DATE

C1

C2

AMT

2021/10/03

A

P1

30

2021/11/04

B

P1

20

2021/10/05

A

P2

50

2021/12/04

B

P1

20

根据以上数据,请用SQL按以下要求输出结果,要求在同一个PERIOD_IDC1 不能重复。

字段类型

VARCHAR2(20)

NUMBER

NUMBER(38,10)

NUMBER(38,10)

字段名

C1

PERIOD_ID

AMT1

AMT2

规则说明

C1

根据字段INPUT_DATE转换,格式为YYYYMM

根据C1+PERIOD_ID分组的AMT汇总

全表AMT的总计

参考答案

sql

--建表:CREATE TABLE temp3_f (input_date DATE,c1 VARCHAR2(20),c2 VARCHAR2(20),amt NUMBER);SELECT * FROM temp3_f;根据以上数据,请用SQL按以下要求输出结果,要求在同一个PERIOD_ID中C1 不能重复。--方法一
SELECT DISTINCT c1,to_number(to_char(input_date, 'yyyymm')) PERIOD_ID,SUM(amt) OVER(PARTITION BY to_number(to_char(input_date, 'yyyymm')), c1) AMT1,SUM(amt) OVER() AMT2FROM temp3_f;--方法二
SELECT c1, PERIOD_ID, MAX(amt1) amt1, MIN(amt2) amt2FROM (SELECT c1,to_number(to_char(input_date, 'yyyymm')) PERIOD_ID,SUM(amt) OVER(PARTITION BY to_number(to_char(input_date, 'yyyymm')), c1) AMT1,SUM(amt) OVER() AMT2FROM temp3_f)GROUP BY c1, PERIOD_ID;

4.来源表 TEMP4_F,字段类型及数据如下:

字段类型

NUMBER

VARCHAR2(20)

VARCHAR2(20)

NUMBER(38,10)

字段名

ID

TYPE

ACC_CODE

AMT

1

CR

1001

50

1

DR

1002

60

2

CR

1003

80

2

DR

9999

100

3

DR

2005

110

4

CR

1001

30

根据以上数据,请用SQL按以下要求输出结果,要求DR的ACC_CODE不为9999

字段类型

NUMBER

VARCHAR2(20)

NUMBER(38,10)

VARCHAR2(20)

NUMBER(38,10)

字段名

ID

DR_ACC_CODE

DR_AMT

CR_ACC_CODE

CR_AMT

规则说明

ID

源表TYPE为DR对应的ACC_CODE的值

源表TYPE为DR对应的AMT的值

源表TYPE为CR对应的ACC_CODEE的值

源表TYPE为CR对应的AMT的值

参考答案

sql

--建表
CREATE TABLE temp4_f (ID NUMBER,TYPE VARCHAR2(20),acc_code VARCHAR2(20),amt NUMBER(38,10));SELECT * FROM temp4_f;根据以上数据,请用SQL按以下要求输出结果,要求DR的ACC_CODE不为9999。
--cr、dr 分别 行转列--根本不用
--再full join--根本不用,而且我耶找不到关联条件
--还要剔除dr acc_code=9999的数据SELECT id,SUM(CASEWHEN TYPE = 'DR' AND acc_code != 9999 THENACC_CODEEND) DR_ACC_CODE,SUM(CASEWHEN TYPE = 'DR' AND acc_code != 9999 THENAMTEND) DR_AMT,SUM(CASEWHEN TYPE = 'CR' THENACC_CODEEND) CR_ACC_CODE,SUM(CASEWHEN TYPE = 'CR' THENAMTEND) CR_AMTFROM temp4_f
---WHERE acc_code!=9999 ---错  GROUP BY ID;
--行转列有时候要groupby 有时候又不要groupby,这是为什么?与sum又什么关系?

5.用sql逻辑实现求中位数 提示:用排名函数

参考答案

sql

--理解中位数
--求emp表中sal的中位数
SELECT  MEDIAN(sal) m_sal
FROM emp;--方法一:
SELECT AVG(t2.sal) 中位数FROM (SELECT CASEWHEN MOD(COUNT(1), 2) = 0 THENCOUNT(1) / 2ELSE(COUNT(1) + 1) / 2END lrn,CASEWHEN MOD(COUNT(1), 2) = 0 THENCOUNT(1) / 2 + 1ELSE(COUNT(1) + 1) / 2END rrnFROM emp) t1JOIN (SELECT sal, row_number() OVER(ORDER BY sal) rn FROM emp) t2ON t1.lrn = t2.rnOR t1.rrn = t2.rn;--方法二SELECT AVG(SAL) ZWSFROM (SELECT empno,SAL,ROW_NUMBER() OVER(ORDER BY SAL) R,COUNT(*) OVER() AFROM EMP) ZWHERE R BETWEEN FLOOR((1 + A) / 2) AND CEIL((1 + A) / 2);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/75512.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++实现对象单例模式

在 C 中实现单例模式有多种方法,以下是线程安全的现代 C 实现方式(推荐 C11 及以上版本): 1. Meyers’ Singleton(推荐) class Singleton { public:// 删除拷贝构造和赋值运算符Singleton(const Singleto…

企业常用Linux服务搭建

1.需要两台centos 7服务器,一台部署DNS服务器,另一台部署ftp和Samba服务器。 2. 部署DNS 服务器​ #!/bin/bash# 更新系统 echo "更新系统..." sudo yum update -y# 安装 BIND 和相关工具 echo "安装 BIND 和相关工具..." sudo y…

UE5Actor模块源码深度剖析:从核心架构到实践应用

UE5 Actor模块源码深度剖析:从核心架构到实践应用 a. UE5 Actor模块架构概述 在UE5引擎中,Actor扮演着至关重要的角色,它是整个游戏世界中各类可交互对象的基础抽象。从本质上来说,所有能够被放置到关卡中的对象都属于Actor的范畴,像摄像机、静态网格体以及玩家起始位置…

DreamDiffusion代码学习及复现

论文解读在这里 File path | Description /pretrains ┣ 📂 models ┃ ┗ 📜 config.yaml ┃ ┗ 📜 v1-5-pruned.ckpt┣ 📂 generation ┃ ┗ 📜 checkpoint_best.pth ┣ 📂 eeg_pretain ┃ ┗ …

用Python实现TCP代理

依旧是Python黑帽子这本书 先附上代码,我在原书代码上加了注释,更好理解 import sys import socket import threading#生成可打印字符映射 HEX_FILTER.join([(len(repr(chr(i)))3) and chr(i) or . for i in range(256)])#接收bytes或string类型的输入…

Pyinstaller 打包flask_socketio为exe程序后出现:ValueError: Invalid async_mode specified

Pyinstaller 打包flask_socketio为exe程序后出现&#xff1a;ValueError: Invalid async_mode specified 一、详细描述问题描述 Traceback (most recent call last): File "app_3.py", line 22, in <module> File "flask_socketio\__init__.py"…

django REST framework(DRF)教程

Django DRF API Django 基本使用Django DRF序列化器Django DRF视图Django DRF常用功能Django 基本使用 前后端分离开发模式认识RestFulAPI回顾Django开发模式Django REST Framework初探前后端分离开发模式 前后端分离前:前端页面看到的效果都是由后端控制,即后端渲染HTML页面…

【Linux】Orin NX + Ubuntu22.04配置国内源

1、获取源 清华源 arm 系统的源,可以在如下地址获取到 https://mirror.tuna.tsinghua.edu.cn/help/ubuntu-ports/ 选择HTTPS,否则可能报错: 明文签署文件不可用,结果为‘NOSPLIT’(您的网络需要认证吗?)查看Orin NX系统版本 选择jammy的源 2、更新源 1)备份原配…

【含文档+PPT+源码】基于微信小程序的社交摄影约拍平台的设计与实现

项目介绍 本课程演示的是一款基于微信小程序的社交摄影约拍平台的设计与实现&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系…

JDBC常用的接口

一、什么是JDBC JDBC是Java语言连接数据库的接口规范。 二、JDBC的体系 1、Java官方提供一个操作数据库的抽象接口 抽象接口有很多的接口和抽象类。 例如&#xff1a;Driver、Connection、Statement。 2、各个数据库厂商提供各自的Java实现类 需要各自实现具体的细节。 例如&am…

容器适配器-stack栈

C标准库不只是包含了顺序容器&#xff0c;还包含一些为满足特殊需求而设计的容器&#xff0c;它们提供简单的接口。 这些容器可被归类为容器适配器(container adapter)&#xff0c;它们是改造别的标准顺序容器&#xff0c;使之满足特殊需求的新容器。 适配器:也称配置器,把一…

[250403] HuggingFace 新增检查模型与电脑兼容性的功能 | Firefox 发布137.0 支持标签组

目录 Hugging Face 让寻找兼容的 AI 模型变得更容易Firefox 137 版本更新摘要 Hugging Face 让寻找兼容的 AI 模型变得更容易 Hugging Face 是一个流行的在线平台&#xff0c;用于访问开源人工智能 (AI) 工具和模型。该平台推出了一项有用的新功能&#xff0c;允许个人轻松检查…

.NET 创建MCP使用大模型对话二:调用远程MCP服务

在上一篇文章.NET 创建MCP使用大模型对话-CSDN博客中&#xff0c;我们简述了如何使用mcp client使用StdIo模式调用本地mcp server。本次实例将会展示如何使用mcp client模式调用远程mcp server。 一&#xff1a;创建mcp server 我们创建一个天气服务。 新建WebApi项目&#x…

Redis 中 Set(例如标签) 和 ZSet(例如排行榜) 的详细对比,涵盖定义、特性、命令、适用场景及总结表格

以下是 Redis 中 Set 和 ZSet 的详细对比&#xff0c;涵盖定义、特性、命令、适用场景及总结表格&#xff1a; 1. 核心定义 数据类型SetZSet&#xff08;Sorted Set&#xff09;定义无序的、唯一的字符串集合&#xff0c;元素不重复。有序的、唯一的字符串集合&#xff0c;每个…

解决Spring参数解析异常:Name for argument of type XXX not specified

前言 在开发 Spring Boot 应用时&#xff0c;我们常遇到类似 java.lang.IllegalArgumentException: Name for argument not specified 的报错。这类问题通常与方法参数名称的解析机制相关&#xff0c;尤其在使用 RequestParam、PathVariable 等注解时更为常见。 一、问题现象与…

刚刚,OpenAI开源PaperBench,重塑顶级AI Agent评测

今天凌晨1点&#xff0c;OpenAI开源了一个全新的AI Agent评测基准——PaperBench。 这个基准主要考核智能体的搜索、整合、执行等能力&#xff0c;需要对2024年国际机器学习大会上顶尖论文的复现&#xff0c;包括对论文内容的理解、代码编写以及实验执行等方面的能力。 根据O…

Golang封装Consul 服务发现库

以下是一个经过生产验证的 Consul 服务发现封装库,支持注册/注销、健康检查、智能发现等核心功能,可直接集成到项目中: package consulimport ("context""fmt""log""math/rand""net""os""sync"&quo…

自适应信号处理任务(过滤,预测,重建,分类)

自适应滤波 # signals creation: u, v, d N = 5000 n = 10 u = np.sin(np.arange(0, N/10., N/50000

PyTorch深度学习框架 的基础知识

目录 1.pyTorch检查是否安装成功 2.PyTorch的张量tensor 基础创建方式&#xff08;三种&#xff09; 2.2用列表创建tensor 2.2使用元组创建 tensor 2.3使用ndarray创建创建 tensor 2.4 快速创建tensor的常用方法 3.pyTorch中的张量tensor的常用属性 4. tensor中的基础数据…

MySQL学习集--DDL

DDL 数据库操作 查询所有数据库 SHOW DATABASES;查询当前数据库 SELECT DATABASE();创建 CREATE DATABASE[IF NOT EXISTS]数据库名[DEFAULT CHARSET 字符集][COLLATE 排序规则];删除 DROR DATABASE[IF EXISTS]数据库名;使用 USE 数据库名;表操作 创建表格 CREATE TABL…