mysql關鍵字DISTINCT/LIMIT習題 【596. 超過5名學生的課+177. 第N高的薪水】
一、DISTINCT關鍵字使用場景:
1.SELECT DISTINCT column1,column2... :
返回不同值的行,應有於column1、column2所有列而不僅是column1列。eg:下題177.
2.COUNT(DISTINCT column1):
對特定列columns中具有不同值的行進行計數。eg:下題596
二、LIMIT關鍵字
LIMIT m,n :從行m開始的n行。在mysql中,檢索出來的第一行為行0。
題596. 超過5名學生的課 (DISTINCT關鍵字)
思路:GROUP BY 分組,然後HAVING過濾分組
一開始輸入以下程式碼,錯誤。注意題目中的notes:學生在每個課中不應被重複計算。
SELECT class FROM courses
GROUP BY class
HAVING COUNT(*)>=5;
故需要新增關鍵字DISTINCT+列名,返回不同的學生名:
SELECT class FROM courses
GROUP BY class
HAVING COUNT(DISTINCT student)>=5;
177. 第N高的薪水(LIMIT關鍵字)
思路:降序排列,然後返回第N-1行開始的第一行:LIMIT N-1,1
一開始輸入以下程式碼,編譯錯誤。這是因為LIMIT後面只能跟常量,不允許跟表示式等。
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT
BEGIN
RETURN (
# Write your MySQL query statement below.
SELECT DISTINCT Salary FROM Employee
ORDER BY Salary DESC
LIMIT N-1,1
);
END
調整表示式為LIMIT m,1
CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT BEGIN declare m int; SET m=N-1; RETURN ( # Write your MySQL query statement below. SELECT DISTINCT Salary FROM Employee ORDER BY Salary DESC LIMIT m,1 ); END
相關推薦
mysql關鍵字DISTINCT/LIMIT習題 【596. 超過5名學生的課+177. 第N高的薪水】
一、DISTINCT關鍵字使用場景: 1.SELECT DISTINCT column1,column2... : 返回不同值的行,應有於column1、column2所有列而不僅是column1列。eg:下題177. 2.COUNT(DISTINCT
每日記錄【LeetCode】596.超過5名學生的課
有一個courses表,有:student(學生)和class (課程)。請列出所有超過或等於5名學生的課。例如,表:用到的表和資料SQL:-- ------------------------------ Table structure for `courses`-- --
【LeetCode】596. 超過5名學生的課
題目 有一個courses 表 ,有: student (學生) 和 class (課程)。 請列出所有超過或等於5名學生的課。 例如,表: student class A Math
596.超過5名學生的課
解析 select class from courses group by class having count( distinct student) >= 5; 之前直接考慮的是,雖然結果相同但是跟題目不符,注意“學生在每個課中不應被重複計算” select cl
LeetCode.596. 超過5名學生的課
思路1: 即按課程分組,由於有重複資料,按學生計數時需要使用distinct. SELECT CLASS class FROM COURSES GROUP BY CLASS HAVING COUNT(DISTINCT STUDENT) >= 5 分析1
LeetCode596-MySQL-超過5名學生的課
有一個courses 表 ,有: student (學生) 和 class (課程)。請列出所有超過或等於5名學生的課。例如,表:+---------+------------+ | student | class | +---------+------------
leetcode596:超過5名學生的課
有一個courses 表 ,有: student (學生) 和 class (課程)。 請列出所有超過或等於5名學生的課。 例如,表: +---------+------------+ | student | class | +---------+----
超過5名學生的課
有一個courses 表 ,有: student (學生) 和 class (課程)。 請列出所有超過或等於5名學生的課。 例如,表: +---------+------------+ | student | class | +--------
【LeetCode】177.第N高的薪水
177.第N高的薪水編寫一個 SQL 查詢語句,獲取Employee表中第n高的薪水(Salary)。用到的表和資料SQL:Create table If Not Exists Employee (Id
SQL--leetcode596. 超過5名學生的課
有一個courses 表 ,有: student (學生) 和 class (課程)。 請列出所有超過或等於5名學生的課。 例如,表: +---------+------------+ | student | class | +---------+------
力扣——超過5名學生的課(數據庫的題
bio 計算 rom you note ont bold select from 有一個courses 表 ,有: student (學生) 和 class (課程)。 請列出所有超過或等於5名學生的課。 例如,表: +---------+------------+ | s
【leetcode】177. 第N高的薪水
這題其實和177思想比較接近,排序就行了 程式碼: CREATE FUNCTION getNthHighestSalary(N INT) RETURNS INT BEGIN RETURN ( # Write your MySQL query state
【MYSQL】超過5名學習的課
有一個courses 表 ,有: student (學生) 和 class (課程)。 請列出所有超過或等於5名學生的課。 例如,表: 應該輸出: Note: 學生在每個課中不應被重複計算!!! 解法一:這道題有一個容易忽視的條件,每個學生每門課只記算一
[MySQL習題] 超過5個學生的課程 Classes More Than 5 Students
There is a table courses with columns: student and class Please list out all classes which have more than or equal to 5 students.
【Leetcode】Mysql查詢第N高的薪水
編寫一個 SQL 查詢,獲取 Employee 表中第 n 高的薪水(Salary)。 +----+--------+ | Id | Salary | +----+--------+ | 1 | 100 | | 2 | 200 | | 3
LeetCode596之超過5名的學生(MySQL實現)
一、題目 二、一種解題思路 1)介紹:分組計數解法(記得去重啊) 時間複雜度:O(n) 空間複雜度:O(1) 2)核心程式碼: select Class from courses group by Class having count(distin
每人漲10%的工資,漲的前一共不超過5萬,從低工資往高工資的人漲,超過5W則停止漲,問漲的錢花了多少,多少人獲得了漲薪。
col case ID 技術 () 獲得 sum left number ;with test(CID,money,NewAmount) as ( SELECT Row_Number() over ( order by money ) as CID
【Leetcode】【連結串列】 19. Remove Nth Node From End of List / 刪除連結串列的倒數第N個節點】
Given a linked list, remove the n-th node from the end of list and return its head. Example: Given linked list: 1->2->3->4->5, and
LeedCode--【19】--【刪除連結串列的倒數第 n 個節點】
一、原題要求: 給定一個連結串列,刪除連結串列的倒數第 n 個節點,並且返回連結串列的頭結點。 示例: 給定一個連結串列: 1->2->3->4->5, 和 n = 2. 當刪除了倒數第二個節點後,連結串列變為 1->2->3-&
LeetCode上關於求第N高的薪水的使用(MySQL自定義函式)
第N高的薪水: 編寫一段SQL語句,從Employee表查詢獲得第 n 高的薪水。 +—-+——–+ | Id | Salary | +—-+——–+ | 1 | 100 | | 2