6-14題連接 - 高頻 SQL 50 題基礎版

目錄

  • 1. 相關知識點
  • 2. 例子
    • 2.6. 使用唯一標識碼替換員工ID
    • 2.7- 產品銷售分析 I
    • 2.8 - 進店卻未進行過交易的顧客
    • 2.9 - 上升的溫度
    • 2.10 - 每臺機器的進程平均運行時間
    • 2.11- 員工獎金
    • 2.12-學生們參加各科測試的次數
    • 2.13-至少有5名直接下屬的經理
    • 2.14 - 確認率

1. 相關知識點

  • left join

    • 以左表為基準,返回左表中所有的行,同時返回右表中與左表匹配的行。
    • 如果右表中沒有匹配的行,則用NULL填充。
  • join和left join的區別

    • 如果是join則右側的數據有的就插,沒的就啥也不干,交白卷,也不留null
    • 但是left join讓右側數據在沒有對應數據時補上了null
  • CROSS JOIN產生了一個結果集,該結果集是兩個關聯表的行的乘積

    • 2行表,與3行表使用cross join,得到2*3=6行數據
  • 相關函數

    函數例子含義
    DATEDIFF(前,后)DATEDIFF(‘2007-12-31’,‘2007-12-30’); # 1兩個日期的差,前-后
    sum()sum(salary)根據分組求和
    if (判斷條件,符合賦值,不符合賦值)if (salary>1000,1,0)根據if條件語句取值
    sum(if( ))sum( if (salary>1000,1,0))根據if條件語句賦值再根據分組求和
    avg(if( ))avg( if (salary>1000,1,0))根據if條件語句賦值再根據分組求均值
    round(,n)round(salary,3)保留n位小數

2. 例子

2.6. 使用唯一標識碼替換員工ID

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

select unique_id,name 
from Employees e left join EmployeeUNI e1 
on e.id=e1.id;

2.7- 產品銷售分析 I

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

select product_name,year,price
from Sales left join Product 
on Sales.product_id = Product.product_id;

2.8 - 進店卻未進行過交易的顧客

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

-- 顧客可能光顧了購物中心但沒有進行交易,一個顧客可能光顧多次,需用顧客id分組
-- 使用COUNT(*)可以輸出GROUP BY后每個分組中的數據數量
-- 左連表,右表沒有的數據賦值為null,即沒有交易的transaction_id 為nullselect v.customer_id,count(*) as count_no_trans
from Visits v left join Transactions t on v.visit_id=t.visit_id
where t.transaction_id is null group by v.customer_id;

2.9 - 上升的溫度

在這里插入圖片描述
在這里插入圖片描述

-- 找出與之前(昨天的)日期相比溫度更高的所有日期的 id
-- DATEDIFF('2007-12-31','2007-12-30');   # 1
-- DATEDIFF('2010-12-30','2010-12-31');   # -1select w1.id 
from Weather w1, Weather w2
wheredatediff(w1.recordDate,w2.recordDate)=1 and w1.temperature>w2.temperature;

2.10 - 每臺機器的進程平均運行時間

在這里插入圖片描述

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

-- sum(if(activity_type = 'end',timestamp ,-timestamp ))
-- 如果activity_type為“end”,值為timestamp,為“start” 為-timestamp,所有數相加=end-start
-- count(distinct process_id),獲取同一機器有幾個進行idselect machine_id , round(sum(if(activity_type = 'end',timestamp ,-timestamp ))/count(distinct process_id),3) as processing_time 
from Activity 
group by machine_id;-- AVG(IF(activity_type = 'start', -timestamp, timestamp))
-- 如果activity_type為“end”,值為timestamp,為“start” 為-timestamp,所有數相加=end-start
-- 將所有數求平均,avg(1,2,3,4)/4,多除了2倍SELECT machine_id, ROUND(AVG(IF(activity_type = 'start', -timestamp, timestamp))*2,3) AS processing_time 
FROM Activity 
GROUP BY machine_id;

2.11- 員工獎金

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

-- join和left join的區別
-- 如果是join則右側的數據有的就插,沒的就啥也不干,交白卷,也不留null
-- 但是left join讓右側數據在沒有對應數據時補上了null
select e.name,b.bonus
from Employee e left join bonus b
on e.empId=b.empId
where b.bonus <1000 or b.bonus is null;

2.12-學生們參加各科測試的次數

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

-- 學生表中,id是唯一的,將他作為主表
--  CROSS JOIN產生了一個結果集,該結果集是兩個關聯表的行的乘積
-- 2行表,與3行表使用cross join,得到2*3=6行數據
select st.student_id, st.student_name,su.subject_name,count(e.subject_name) AS attended_exams 
from Students st 
cross join Subjects su 
left join Examinations e 
on e.student_id=st.student_id and e.subject_name=su.subject_name
group by st.student_id, st.student_name,su.subject_name 
order by st.student_id,st.student_name;

2.13-至少有5名直接下屬的經理

在這里插入圖片描述
在這里插入圖片描述

select name
from Employee 
where id in (select managerId  -- 查找大于5的經理idfrom Employeegroup by managerId  -- 根據id分組having count(*)>=5); -- 根據分組的數據進行求個數

2.14 - 確認率

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

-- s為注冊表,有所有用戶的信息,即為主表
select s.user_id,round(sum(if(action="confirmed",1,0))/count(s.user_id),2) confirmation_rate 
from Signups s 
left join Confirmations c 
on s.user_id =c.user_id 
group by s.user_id;

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

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

相關文章

JavaScript——屬性的檢測和枚舉

目錄 任務描述 相關知識 屬性的檢測 屬性的枚舉 編程要求 任務描述 本關任務&#xff1a;給定一個屬性的名字&#xff0c;請先判斷它屬于哪一個對象&#xff0c;然后返回該對象的所有自有屬性名連接成的字符串。 如&#xff1a;school對象有三個自有屬性name,location,s…

達夢數據庫系列—15. 表的備份和還原

目錄 1、表備份 2、表還原 1、表備份 表備份和表還原恢復&#xff0c;都必須在聯機狀態下進行。 與備份數據庫與表空間不同&#xff0c;不需要備份歸檔日志&#xff0c;不存在增量備份之說。 CREATE TABLE TAB_FOR_RES_02(C1 INT);CREATE INDEX I_TAB_FOR_RES_02 ON TAB_F…

樹狀數組——點修區查與區修點查

樹狀數組是一種代碼量小&#xff0c;維護區間的數據結構 他可以實現&#xff1a; 1.區間修改&#xff0c;單點查詢 2.單點修改&#xff0c;區間查詢 當然&#xff0c;二者不可兼得&#xff0c;大人全都要的話&#xff0c;請選擇線段樹 前置知識&#xff1a; lowbit(x)操作…

如何安裝和配置Monit

前些天發現了一個巨牛的人工智能學習網站&#xff0c;通俗易懂&#xff0c;風趣幽默&#xff0c;忍不住分享一下給大家。點擊跳轉到網站。 關于 Monit Monit 是一個有用的程序&#xff0c;可以自動監控和管理服務器程序&#xff0c;以確保它們不僅保持在線&#xff0c;而且文…

Java與前端框架集成開發指南

Java與前端框架集成開發指南 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01; 引言 在當今互聯網應用開發中&#xff0c;Java作為一種強大的后端語言&#xff0…

程序人生 - (002)

作為一名程序員&#xff0c;在編程和軟件開發的過程中&#xff0c;通常會有一些深刻的感悟和體會。這些感悟不僅僅是關于技術的&#xff0c;也包括對工作的態度、職業的發展和人生的理解。 代碼即邏輯&#xff1a;編寫代碼不僅僅是使用編程語言&#xff0c;更重要的是用邏輯思維…

LDM論文解讀

論文名稱&#xff1a;High-Resolution Image Synthesis with Latent Diffusion Models 發表時間&#xff1a;CVPR2022 作者及組織&#xff1a;Robin Rombach, Andreas Blattmann, Dominik Lorenz,Patrick Esser和 Bjorn Ommer, 來自Ludwig Maximilian University of Munich &a…

獨一無二的設計模式——單例模式(Java實現)

1. 引言 親愛的讀者們&#xff0c;歡迎來到我們的設計模式專題&#xff0c;今天的講解的設計模式&#xff0c;還是單例模式哦&#xff01;上次講解的單例模式是基于Python實現&#xff08;獨一無二的設計模式——單例模式&#xff08;python實現&#xff09;&#xff09;的&am…

web全屏api,實現元素放大全屏,requestFullscreen,exitFullscreen

全屏api 主要方法 document.exitFullscreen(); 退出頁面全屏狀態&#xff0c;document是全局文檔對象 dom.requestFullscreen(); 使dom進入全屏狀態&#xff0c;異步&#xff0c;dom是一個dom元素 dom.onfullscreenchange&#xff08;&#xff09;; 全…

專題四:Spring源碼初始化環境與BeanFactory

上文我們通過new ClassPathXmlApplicationContext("applicationContext.xml");這段代碼看了下Spring是如何將Xml里面內容注入到Java對象中&#xff0c;并通過context.getBean("jmUser");方式獲得了一個對象實例&#xff0c;而避開使用new 來耦合。今天我們…

【TB作品】智能臺燈控制器,ATMEGA128單片機,Proteus仿真

題目 8 &#xff1a;智能臺燈控制器 基于單片機設計智能臺燈控制器&#xff0c;要求可以調節 LED 燈的亮度&#xff0c;實現定時開啟與關閉&#xff0c; 根據光照自動開啟與關閉功能。 具體要求如下&#xff1a; &#xff08;1&#xff09;通過 PWM 功能調節 LED 燈亮度&#x…

【本地調試】使用 Nginx 和 Hosts 文件實現本地開發調試請求轉發

可以按照以下 nginx 配置來設置&#xff0c;通過 nginx 和 host 將網頁的請求轉發到本地的后端服務器&#xff0c;以方便本地開發調試 一、nginx 配置 worker_processes 1;events {worker_connections 1024; }http {include mime.types;default_type application/js…

【Python】 數據分析中的常見統計量:中位數

那年夏天我和你躲在 這一大片寧靜的海 直到后來我們都還在 對這個世界充滿期待 今年冬天你已經不在 我的心空出了一塊 很高興遇見你 讓我終究明白 回憶比真實精彩 &#x1f3b5; 王心凌《那年夏天寧靜的海》 中位數&#xff08;Median&#xff09;是統計學…

深入淺出3D感知中的優化與基于學習的技術1(原創系列)

近期幾乎看了所有有關NERF技術論文&#xff0c;本身我研究的領域不在深度學習技術方向&#xff0c;是傳統的機器人控制和感知。所以總結了下這部分基于學習的感知技術&#xff0c;會寫一個新的系列教程講解這部分三維感知技術的發展到最新的技術細節&#xff0c;并支持自己最近…

娛樂圈發生震動,AI大模型技術已經取代了SNH48的小偶像?

自2023年以來&#xff0c;全球都被包裹在AI的驚天大潮之中&#xff0c;所有行業都在主動或被動地迎接改變。目前&#xff0c;各行業已經有大量公司正在把AI作為自身發展的最佳路徑。其中&#xff0c;娛樂行業作為最被人們熟知的行業也在面對AI的發展時&#xff0c;發生著巨大變…

解析Java中1000個常用類:Currency類,你學會了嗎?

在線工具站 推薦一個程序員在線工具站:程序員常用工具(http://cxytools.com),有時間戳、JSON格式化、文本對比、HASH生成、UUID生成等常用工具,效率加倍嘎嘎好用。程序員資料站 推薦一個程序員編程資料站:程序員的成長之路(http://cxyroad.com),收錄了一些列的技術教程…

解析connectionReset異常的原因與解決方案

解析connectionReset異常的原因與解決方案 大家好&#xff0c;我是免費搭建查券返利機器人省錢賺傭金就用微賺淘客系統3.0的小編&#xff0c;也是冬天不穿秋褲&#xff0c;天冷也要風度的程序猿&#xff01;今天我們將深入探討Java中connectionReset異常的原因及其解決方案。這…

遙遠星辰中的覺醒:超大質量黑洞的蘇醒與人類的未來

遙遠星辰中的覺醒&#xff1a;超大質量黑洞的蘇醒與人類的未來 在浩渺無垠的宇宙中&#xff0c;星辰的閃爍仿佛是時間的漣漪&#xff0c;穿越億萬年的距離&#xff0c;抵達我們的眼眸。而在這片星辰大海的深處&#xff0c;一個驚人的現象正在悄然上演——距離地球3.6億光年之遙…

Unity獲取剪切板內容粘貼板圖片文件文字

最近做了一個發送消息的unity項目&#xff0c;需要訪問剪切板里面的圖片文字文件等&#xff0c;翻遍了網上的東西&#xff0c;看了不是需要導入System.Windows.Forms&#xff08;關鍵導入了unity還不好用&#xff0c;只能用在純c#項目中&#xff09;&#xff0c;所以我看了下py…

GMSB文章九:微生物的相關關系組間波動

歡迎大家關注全網生信學習者系列&#xff1a; WX公zhong號&#xff1a;生信學習者Xiao hong書&#xff1a;生信學習者知hu&#xff1a;生信學習者CDSN&#xff1a;生信學習者2 介紹 計算配對微生物在組間的相關關系波動情況進而評估不同分組的微生物狀態。secom_linear 函數…