大數據面試SQL題-筆記01【運算符、條件查詢、語法順序、表連接】

  1. 大數據面試SQL題復習思路一網打盡!(文檔見評論區)_嗶哩嗶哩_bilibili
  2. Hive SQL 大廠必考常用窗口函數及相關面試題

  1. 大數據面試SQL題-筆記01【運算符、條件查詢、語法順序、表連接】
  2. 大數據面試SQL題-筆記02【...】

目錄

01、力扣網-sql題

1、高頻SQL50題(基礎版)

2、高頻SQL50題(進階版)

02、牛客網-sql題

2.1、運算符

2.2、條件查詢

2.3、語法順序

2.4、表連接方式

2.5、語法元素

2.5.1、union

2.5.2、case

2.5.3、if / is null

2.5.4、日期函數-DATEDIF


HSQL絕對重點

三、窗口函數用法舉例

  1. 序號函數:row_number() / rank() / dense_rank()(面試重點)
  2. 分布函數:percent_rank() / cume_dist()
  3. 前后函數 lag(expr, n, defval)、lead(expr, n, defval)(面試重點)
  4. 頭尾函數:FIRST_VALUE(expr)、LAST_VALUE(expr)
  5. 聚合函數+窗口函數聯合使用

01、力扣網-sql題

力扣sql題

1、高頻SQL50題(基礎版)

沒寫完 ...

2、高頻SQL50題(進階版)

沒寫完 ...

02、牛客網-sql題

非技術快速入門

2.1、運算符

2.2、條件查詢

_:匹配任意一個字符;
SELECT * FROM 學生表 WHERE name LIKE '張__'//查詢姓“張”且名字是3個字的學生姓名。%:匹配0個或多個字符;
SELECT * FROM 學生表 WHERE 姓名 LIKE ‘張%’//查詢學生表中姓‘張’的學生的詳細信息。[ ]:匹配[ ]中的任意一個字符(若要比較的字符是連續的,則可以用連字符“-”表 達 );
SELECT * FROM 學生表 WHERE 姓名 LIKE '[張李劉]%’//查詢學生表中姓‘張’、姓‘李’和姓‘劉’的學生的情況。[^ ]:不匹配[ ]中的任意一個字符。
SELECT * FROM 學生表 WHERE 學號 LIKE '%[^235]' //從學生表表中查詢學號的最后一位不是2、3、5的學生信息。

2.3、語法順序

SELECT columns
FROM table_name
WHERE conditions
GROUP BY columns
HAVING conditions
ORDER BY columns DESC
LIMIT num;
-------------------------------
SELECT * | 字段列表 [as 別名]
FROM 表名
[WHERE 子句]
[GROUP BY 子句]
[HAVING 子句]
[ORDER BY 子句]
[LIMIT 子句];

在 SQL 查詢中,通常的語法順序是這樣的:

  1. SELECT:選擇要查詢的列。
  2. FROM:指定查詢的數據表。
  3. WHERE:對數據進行篩選,根據指定的條件過濾行。
  4. GROUP BY:按照指定的列對結果進行分組。
  5. HAVING:對分組后的結果應用條件過濾。
  6. ORDER BY:指定結果的排序順序。
  7. LIMIT:限制返回的行數。

雖然在實際的 SQL 查詢中,您不一定需要每個子句都使用,但是一般來說,這是它們的一般順序。

至于 AND,它是用于連接多個條件的邏輯運算符。它通常出現在 WHERE 子句中,用于結合多個條件以過濾行。

SELECT * FROM table_name WHERE condition1 AND condition2;

在這種情況下,AND 的使用是在 WHERE 子句中,但它可以根據需要出現在其他地方。

牛客網——SQL19?分組過濾練習題

select

? ? university,

? ? avg(question_cnt) as avg_question_cnt,

? ? avg(answer_cnt) as avg_answer_cnt

from

? ? user_profile

group by

? ? university

having #聚合函數結果作為篩選條件時,不能用where,而是用having語法

? ? avg_question_cnt < 5

? ? or avg_answer_cnt < 20;

3.3.3 總結內連接查詢步驟:

1) 確定查詢哪些表

2) 確定表連接的條件

3) 確定查詢的條件

4) 確定查詢的字段

2.4、表連接方式

  1. 內連接(Inner Join):返回匹配連接條件的行,包括兩個表中同時出現的行。
  2. 左連接(Left Join 或 Left Outer Join):返回左表中的所有行,以及右表中與左表匹配的行。如果右表中沒有匹配的行,則返回 NULL 值。
  3. 右連接(Right Join 或 Right Outer Join):返回右表中的所有行,以及左表中與右表匹配的行。如果左表中沒有匹配的行,則返回 NULL 值。
  4. 全連接(Full Join 或 Full Outer Join):返回左表和右表中的所有行,如果某行在其中一個表中沒有匹配的行,則返回 NULL 值。
  5. 自連接(Self Join):將表與自身連接,通常用于比較表中的不同行。

除了這些基本的連接方式外,還有一些其他變體和組合,但這些是最常見的表連接方式。

這些連接方式可以組合使用,因此可能會導致多個表同時參與連接。例如,在一個查詢中,您可以使用多個內連接,左連接,右連接或全連接。

2.5、語法元素

2.5.1、union

UNION 是用于合并兩個或多個 SELECT 語句的結果集的操作符。它用于將多個查詢結果合并為單個結果集,并且會自動去除重復的行。UNION 用于組合兩個或多個查詢的結果集,并返回一個包含所有查詢結果的單個結果集。

分別查看&結果不去重:所以直接使用兩個條件的or是不行的,直接用union也不行,要用union all,分別去查滿足條件1的和滿足條件2的,然后合在一起不去重。

  1. UNIONUNION 操作符用于合并兩個查詢結果集,并且會自動去除重復的行。如果兩個查詢的結果集中存在相同的行,則 UNION 只會返回一次該行。UNION 不會返回重復的行。
  2. UNION ALLUNION ALL 也用于合并兩個查詢結果集,但是它不會去除重復的行。即使兩個查詢的結果集中存在相同的行,UNION ALL 也會將它們都返回。UNION ALL 返回所有行,包括重復的行。
select device_id, gender, age, gpa
from user_profile
where university = '山東大學'union allselect device_id, gender, age, gpa
from user_profile
where gender = 'male';

2.5.2、case

CASEWHEN 簡單表達式1 THEN 結果表達式1WHEN 簡單表達式2 THEN 結果表達式2 …WHEN 簡單表達式n THEN 結果表達式n[ ELSE 結果表達式n+1 ]
END
----------------------------------------------------
SELECTCASEWHEN GRADE BETWEEN 85 AND 100 THEN '優'WHEN GRADE BETWEEN 70 AND 84  THEN '良'WHEN GRADE BETWEEN 60 AND 69  THEN '及格'ELSE '不及格'END 等級,COUNT(*) 人數
FROMSC
GROUP BYCASEWHEN GRADE BETWEEN 85 AND 100 THEN '優'WHEN GRADE BETWEEN 70 AND 84  THEN '良'WHEN GRADE BETWEEN 60 AND 69  THEN '及格'ELSE '不及格'END

2.5.3、if / is null

#if判斷
SELECT IF(age < 25 OR age IS NULL, '25歲以下', '25歲及以上') age_cut, COUNT(device_id) Number
FROM user_profile
GROUP BY age_cut
---------------------------------
SELECTIF (age < 25 OR age IS NULL,'25歲以下','25歲及以上') age_cut,COUNT(device_id) Number
FROMuser_profile
GROUP BYage_cut;
---------------------------------
SELECTdevice_id,gender,IF (age is null, '其他',IF (age < 20, '20歲以下',IF (age <= 24, '20-24歲', '25歲及以上'))) age_cut
FROMuser_profile;

2.5.4、日期函數-DATEDIFF

MySQL 中的 DAY()MONTH()YEAR() 函數用于從給定的日期中提取日、月和年,返回類型:int。

selectday (date) as day,count(question_id) as question_cnt
fromquestion_practice_detail
wheremonth (date) = 8and year (date) = 2021
group bydate;

DATEDIFF() 是 MySQL 中的日期函數,用于計算兩個日期之間的天數差異。它的語法如下:DATEDIFF(date1, date2)

其中,date1date2 是要比較的兩個日期或日期/時間表達式。函數返回 date1 減去 date2 的結果,以天為單位的差值。

例如,假設有兩個日期 date1date2,你可以使用 DATEDIFF() 函數來計算它們之間的天數差:

SELECT DATEDIFF('2024-04-26', '2024-04-20'); -- 返回 6

在這個例子中,結果是 6,因為從 2024-04-202024-04-26 之間相隔了 6 天。

ヾ(?°?°?)ノ゙加油~

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/45471.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/45471.shtml
英文地址,請注明出處:http://en.pswp.cn/web/45471.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

TCP、UDP、TCP與UDP的區別及聯系

目錄 TCP和UDP區別1.連接2.交互個數3.可靠性4.傳輸方式5.適用場景 怎么實現一個可靠的UDP傳輸TCP詳解UDP詳解 TCP和UDP區別 1.連接 TCP 面向連接的&#xff0c;傳輸數據前先要建立連接。 UDP 是不需要連接&#xff0c;即刻傳輸數據。 2.交互個數 TCP 是一對一通信。 UDP 支…

數據結構——hash(hashmap源碼探究)

hash是什么&#xff1f; hash也稱為散列&#xff0c;就是把任意長度的輸入&#xff0c;通過散列算法&#xff0c;變成固定長度的輸出&#xff0c;這個輸出值就是散列值。 舉例來說明一下什么是hash&#xff1a; 假設我們要把1~12存入到一個大小是5的hash表中&#xff0c;我們…

礦產資源潛力預測不確定性評價

研究目的&#xff1a; 不確定性評估&#xff1a; 到底什么叫不確定性&#xff0c;簡單來說就是某區域內的礦產資源量&#xff0c;并不確定到底有多少&#xff0c;你需要給出一個評估或者分布。 研究方法&#xff1a; 1.以模糊集來表示某些量&#xff1a; 關于什么是模糊集&am…

信通院全景圖發布 比瓴科技領跑軟件供應鏈安全,多領域覆蓋數字安全服務

近日&#xff0c;中國信息通信研究院在2024全球數字經濟大會—數字安全生態建設專題論壇正式發布首期《數字安全護航技術能力全景圖》&#xff08;以下簡稱全景圖&#xff09;。 比瓴科技入選軟件供應鏈安全賽道“開發流程安全管控、交互式安全測試、靜態安全測試、軟件成分分…

智慧水利:邁向水資源管理的新時代,結合物聯網、云計算等先進技術,闡述智慧水利解決方案在提升水災害防控能力、優化水資源配置中的關鍵作用

本文關鍵詞&#xff1a;智慧水利、智慧水利工程、智慧水利發展前景、智慧水利技術、智慧水利信息化系統、智慧水利解決方案、數字水利和智慧水利、數字水利工程、數字水利建設、數字水利概念、人水和協、智慧水庫、智慧水庫管理平臺、智慧水庫建設方案、智慧水庫解決方案、智慧…

數據分析——numpy教程

1.NumPy&#xff1a; 是Python的一個開源的數值計算庫。可以用來存儲和處理大型矩陣&#xff0c;比python自身的嵌套列表結構要高效&#xff0c;支持大量的維度數組與矩陣運算&#xff0c;此外也針對數組運算提供大量的數學函數庫&#xff0c;包括數學、邏輯、形狀操作、排序、…

前端數據加密,后端java解密

在前端對數據進行加密后&#xff0c;通常會使用一些加密算法和技術&#xff0c;如AES&#xff08;Advanced Encryption Standard&#xff09;進行數據加密。然后&#xff0c;將加密后的數據發送到后端。后端接收到加密數據后&#xff0c;使用Java語言進行解密。 以下是一個簡單…

MKS電源管理軟件OPTIMA RPDG DCG系列RF Elit600系列

MKS電源管理軟件OPTIMA RPDG DCG系列RF Elit600系列

數據結構——考研筆記(三)線性表之單鏈表

文章目錄 2.3 單鏈表2.3.1 知識總覽2.3.2 什么是單鏈表2.3.3 不帶頭結點的單鏈表2.3.4 帶頭結點的單鏈表2.3.5 不帶頭結點 VS 帶頭結點2.3.6 知識回顧與重要考點2.3.7 單鏈表的插入和刪除2.3.7.1 按位序插入&#xff08;帶頭結點&#xff09;2.3.7.2 按位序插入&#xff08;不帶…

spring事務 @Transactional

文章目錄 1. 簡介1.1 什么是事務1.2 什么是Spring事務管理1.3 Transactional注解的作用 2. Transactional注解的使用2.1 如何在Spring中使用Transactional2.2 Transactional的屬性配置 3. Transactional的工作原理3.1 Spring如何管理事務3.2 Transactional的底層實現 4. Transa…

數學建模·灰色關聯度

灰色關聯分析 基本原理 灰色關聯分析可以確定一個系統中哪些因素是主要因素&#xff0c;哪些是次要因素&#xff1b; 灰色關聯分析也可以用于綜合評價&#xff0c;但是由于數據預處理的方式不同&#xff0c;導致結果 有較大出入 &#xff0c;故一般不采用 具體步驟 數據預處理…

wps批量刪除空白單元格

目錄 原始數據1.按ctrlg鍵2.選擇“空值”&#xff0c;點擊“定位”3. 右擊&#xff0c;刪除單元格修改后的數據 原始數據 1.按ctrlg鍵 2.選擇“空值”&#xff0c;點擊“定位” 如圖所示&#xff0c;空值已被選中 3. 右擊&#xff0c;刪除單元格 修改后的數據

微軟Office PLUS辦公插件下載安裝指南

微軟OfficePLUS插件下載安裝指南 簡介&#xff1a; OfficePLUS微軟官方出品的Office插件 &#xff0c;OfficePLUS擁有30萬高質量模板素材&#xff0c;能幫助Word、Excel、Powerpoint、PDF等多種辦公軟件提升效率&#xff0c;具有智能化、模板質量高、運行快、穩定性強等優點。…

抽象工廠模式與工廠方法(簡單工廠)的區別

在軟件開發中&#xff0c;簡單工廠模式和工廠方法模式是兩種常用的創建型設計模式。盡管它們都用于創建對象&#xff0c;但它們的實現方式和應用場景有所不同。本文將詳細探討這兩種模式的區別&#xff0c;幫助你更好地理解和應用它們。 簡單工廠模式 簡單工廠模式&#xff0…

昇思25天學習打卡營第11天|RNN實現情感分類

概述 情感分類是自然語言處理中的經典任務&#xff0c;是典型的分類問題。本節使用MindSpore實現一個基于RNN網絡的情感分類模型&#xff0c;實現如下的效果&#xff1a; 輸入: This film is terrible 正確標簽: Negative 預測標簽: Negative輸入: This film is great 正確標…

Mongodb復合索引

學習mongodb&#xff0c;體會mongodb的每一個使用細節&#xff0c;歡迎閱讀威贊的文章。這是威贊發布的第90篇mongodb技術文章&#xff0c;歡迎瀏覽本專欄威贊發布的其他文章。如果您認為我的文章對您有幫助或者解決您的問題&#xff0c;歡迎在文章下面點個贊&#xff0c;或者關…

【計算機畢業設計】002基于weixin小程序家庭記賬本

&#x1f64a;作者簡介&#xff1a;擁有多年開發工作經驗&#xff0c;分享技術代碼幫助學生學習&#xff0c;獨立完成自己的項目或者畢業設計。 代碼可以私聊博主獲取。&#x1f339;贈送計算機畢業設計600個選題excel文件&#xff0c;幫助大學選題。贈送開題報告模板&#xff…

【實戰:python-Django發送郵件-短信-釘釘通知】

一 Python發送郵件 1.1 使用SMTP模塊發送郵件 import smtplib from email.mime.text import MIMEText from email.header import Headermsg_from 306334678qq.com # 發送方郵箱 passwd luzdikipwhjjbibf # 填入發送方郵箱的授權碼(填入自己的授權碼&#xff0c;相當于郵箱…

鴻蒙語言基礎類庫:【@ohos.uitest (UiTest)】 測試

UiTest UiTest提供模擬UI操作的能力&#xff0c;供開發者在測試場景使用&#xff0c;主要支持如點擊、雙擊、長按、滑動等UI操作能力。 該模塊提供以下功能&#xff1a; [By]&#xff1a;提供控件特征描述能力&#xff0c;用于控件篩選匹配查找。[UiComponent]&#xff1a;代…

實驗四:圖像的銳化處理

目錄 一、實驗目的 二、實驗原理 1. 拉普拉斯算子 2. Sobel算子 3. 模板大小對濾波的影響 三、實驗內容 四、源程序和結果 (1) 主程序(matlab) (2) 函數GrayscaleFilter (3) 函數MatrixAbs 五、結果分析 1. 拉普拉斯濾波 2. Sobel濾波 3. 不同大小模板的濾波…