大數據筆試題_第一階段配套筆試題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.pswp.cn/bicheng/75512.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/75512.shtml
英文地址,請注明出處:http://en.pswp.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…