596. Classes More Than 5 Students
596. Classes More Than 5 Students(資訊來自於leetcode 596 Classes More Than 5 Students)
超過 5 名學生的班級編寫一個 SQL 查詢來報告所有至少有五個學生的班級。
以任意順序返回結果表。
解題方式:select class from Courses group by class having count(*)>=5
解題解析:要取得至少有5個學生的班級,這邊我們就會用到聚合函數,但是WHERE不能搭配聚合函數,因此我們這邊就需要用HAVING子句,使用在GROUP BY 後面。(資訊來自於 HAVING 子句 (SQL HAVING Clause)
608. Tree Node
608. Tree NodeTree Node
透過leetcode 608Tree Node來練習
使用table
id 是該表的主鍵列。該表的每一行都包含有關節點的 id 及其在樹中的父節點的 id 的信息。給定的結構總是一棵有效的樹。
題目說明:樹中的每個節點都可以是以下三種類型之一:
“Leaf”:如果節點是葉子(最下面的點)節點。“Root”:如果節點是樹的根(最上面的點)。“Inner”:如果該節點既不是葉節點也不是根節點(中間 不是最上面也不是最下面)。編寫一個 SQL 查詢來報告樹中每個節點的類型。
返回按id升序排列的結果表。
查詢結果格式如下例所示。
解題:以下圖解為第一個例題
1.SELECT P_ID FROM Table_1
2.SELECT * FROM Table_1 WHERE ID IN (SELECT P_ID FROM Table_1)
3.select id,case when p_id is null then 'Root'when id in (select p_id from tree) then 'Inne ...
1587. Bank Account Summary II
1587. Bank Account Summary II(資訊來自於leetcode 1587 Bank Account Summary II)
銀行賬戶摘要二使用table
account 是這個表的主鍵。該表的每一行都包含銀行中每個用戶的帳號。表中不會有兩個具有相同名稱的用戶。
trans_id 是這個表的主鍵。此表的每一行都包含對所有帳戶所做的所有更改。如果用戶收到錢,則金額為正數,如果用戶轉賬,金額為負數。所有帳戶的餘額都從 0 開始。
題目說明:編寫一個 SQL 查詢來報告餘額高於10000的用戶名稱。賬戶餘額等於涉及該賬戶的所有交易金額的總和。
以任意順序返回結果表。
查詢結果格式如下例所示。
解題方式:select B.name , sum(M.amount) balancefrom Transactions Mleft outer join Users B on M.account = B.account group by B.namehaving sum(M.amount)>10000
解題解析:利用聚合函數SUM()把amount(轉帳或是存款)加總起 ...
1527. Patients With a Condition
1527. Patients With a Condition本題主要考驗 like 模糊查詢
Group Sold Products By The Date
透過leetcode 1527Patients With a Condition來練習
使用table
patient_id 是該表的主鍵。‘conditions’ 包含 0 個或多個以空格分隔的代碼。此表包含醫院患者的信息。
題目說明:編寫 SQL 查詢以報告patient_id,patient_name I 型糖尿病患者的所有狀況。I型糖尿病總是以DIAB1前綴開頭
按任意順序返回結果表。
查詢結果格式如以下範例所示。
解題:
conditions like 'DIAB1%' 判斷資料是否為DIAB1開頭
conditions like '% DIAB1%'判斷資料是否為xxx DIAB1
一開始以為只要使用 conditions like '%DIAB1%' 即可後來發現可能出現 xxxDIAB1xxx 類型的資料 故改寫成以下寫法
select patient_id, ...
計算機網路體系結構
計算機網路體系結構在计算机网络的基本概念中,分层次的体系结构是最基本的
计算机网络体系结构的形成分层相互通信的两个计算机系统必须高度协调工作才行,而这种“协调”是相当复杂的。为了设计这样复杂的计算机网络,最初提出了分层的方法。“分层”可将庞大而复杂的问题,转化为若干较小的局部问题,而这些较小的局部问题比较易于研究和处理
国际标准全球经济的发展使得不同网络体系结构的用户迫切要求能够互相交换信息,国际标准化组织 ISO 提出了 OSI。只要遵循 OSI 标准,一个系统就可以和位于世界上任何地方的、也遵循这同一标准的其他任何系统进行通信
现今规则最大的、覆盖全球的、基于 TCP/IP 的互联网并未使用 OSI 标准。在20世纪90年代初期,虽然整套的 OSI 国际标准已制定出来,但基于 TCP/IP 的互联网已抢先在全球相当大的范围成功地运行了,而同时却几乎找不到有厂家生产出符合 OSI 标准的商业产品。OSI 只获得了一些理论研究的成果,市场化方面则彻底失败了
TCP/IP 常被称为是事实上的国际标准
协议与划分层次网络协议在计算机网络中要做到有条不紊地交换数据,就必须准守一些事先约定好的 ...
1484.Group Sold Products By The Date
1484.Group Sold Products By The Date本題主要考驗 合併欄位
Group Sold Products By The Date
透過leetcode 1484Group Sold Products By The Date來練習
使用table
此表沒有主鍵,它可能包含重複項。此表的每一行都包含產品名稱和在市場上銷售的日期。
題目說明:編寫一個 SQL 查詢來查找每個日期銷售的不同產品的數量及其名稱。
每個日期的已售產品名稱應按字典順序排序。
返回以 sell_date 排序的結果表。
查詢結果格式如下例所示。
解題:以下圖解為第一個例題 參考
COUNT(DISTINCT PRODUCT) DISTINCT去除重複值(Mask) GROUP BY SELL_DATE以 SELL_DATE作為依據算出筆數
欄位合併部分使用FOR XML 語法搭配 PATH 模式把欄位合併的結果先 SELECT 出來。 目前狀態”,Basketball,Headphone,T-Shirt”
在使用STUFF將第一個 ‘ , ‘去掉即可
SELECT SELL_DATE ...
樹(Tree)
樹(Tree)介紹在計算機科學中,樹是一種用來組織和儲存資料的抽象資料結構。樹是由節點和連接它們的邊構成的,其中一個節點被稱為根節點,它沒有父節點。其它節點可以有一個或多個父節點和零個或多個子節點。
樹是一種分層資料結構,因為它的節點在不同的層級上。從根節點開始,可以透過沿著邊向下移動來造訪樹中的每個節點。每個節點可以有任意數量的子節點,但每個子節點只能有一個父節點。
在資料結構中,樹通常是二元搜尋樹,每個節點最多有兩個子節點,分別稱為左子節點和右子節點。二元搜尋樹是最常用的樹之一,因為它們易於實作且非常高效。二元搜尋樹可以用於實現搜尋樹、Heap、霍夫曼編碼(Huffman Coding)等資料結構。
(此為二元搜尋樹Binary Search tree)
定義
樹是一個沒有loop的Graph,所以下圖不是一個樹
樹必須有一個,也只能有一個根root
真實應用
文件系統中的文件夾
電子郵件信箱中的文件夾
HTML文檔中的DOM(Document Object Model)樹
自然語言處理
下圖為DOM樹範例
(圖片來自於[資料結構] 樹 Tree)
建立樹的基本要點
確定樹的 ...
雜湊表(Hash Table)
雜湊表(Hash Table)遇到問題在一陣列中,我們放入成對key和value的數值,key為球員背號,value為球員名稱,假設要查找四號球員,用下列兩種方式查找會遇到一些問題
透過線性搜尋,查找速度較慢,為$O(n)$
將球員背號放入相對應array位置,直接使用它們的鍵值作為索引,稱作Direct Address Table,使用這種方式查找速度非常快,但如果數據總數與最大值之間有很大的差距,會導致記憶體空間浪費
為解決以上問題我們可以使用雜湊表
介紹雜湊表是資料結構的一種,主要用來進行有效率的數據搜尋。
雜湊表它將鍵映射到值。它使用雜湊函數Hash Function將鍵映射到數組中的桶(Bucket),從而使查找,插入和刪除操作的時間複雜度達到$O(1)$,如下圖所示。它們被廣泛用於多種計算機軟件,特別是關聯數組(associative arrays)、數據庫索引(database indexing)、緩存(caches)和集合(sets)。
在實現雜湊表時,需要考慮具體的應用場景,選擇合適的雜湊函數和衝突解決方法,以達到最好的性能和空間效率。
常見名詞
Collis ...
1050. Actors and Directors Who Cooperated At Least Three Times
1050. Actors and Directors Who Cooperated At Least Three Times(資訊來自於leetcode 1050 Actors and Directors Who Cooperated At Least Three Times)
至少合作過三次的演員和導演使用tabletimestamp 是這個表的主鍵列。
題目說明:為報告編寫 SQL 查詢,該報告提供(actor_id, director_id)演員與導演至少合作 3 次的配對。
以任意順序返回結果表。
查詢結果格式如下例所示。
解題方式:select actor_id,director_id from ActorDirector group by actor_id,director_idhaving count(*)>=3
解題解析:對導演及演員使用group by 抓出兩者的總和值是大於等於3的
By. @OtbmOtOMRzCEOxuIjDNc8A
PHP Test
PHP TestPHPQ1. What does this code output?echo 76 <=> '76 trombones';
[ ] 1
[ ] -1
[ ] a parser error
[x] 0
Both sides of the “spaceship” are equal, so the answer is 0. PHP will convert ‘76 trombones’ to 76 in this context, as the string starts with ‘76’. Try it!For php 8.0 and forward the answer is [x] -1, for previous versions the answer is [x] 0.PHP 8 changed the way non-strict comparison between numbers and non-numeric strings work.
Q2. Which is the most secure way to avoid s ...


