【SQL刷題系列】:leetcode180 Consecutive Numbers

2021-03-02 Python數據科學



點擊上方 ↑ 藍色


關注「Python數據科學」

SQL刷題系列:SQL作為一種資料庫查詢和程序設計語言,是從事數據技術人員必備的技能,也是各大公司的數據分析、數據挖掘、資料庫等筆試題必考的一種題。所以,不論大家是轉行還是學習都少不了這一關。為此,Python數據科學開啟了SQL刷題的系列,希望可以幫助有需要的朋友們。

題目來源:本篇內容為Leetcode上SQL題庫180

難易程度:中等

▌刷題回顧


【SQL刷題系列】:leetcode178 Rank Scores

【SQL刷題系列】:leetcode183 Customers Who Never Order

▌題目描述

Write a SQL query to find all numbers that appear at least three times consecutively.

寫一段SQL查詢語句,找到所有出現至少連續三次的數字。

+----++| Id | Num |+----++| 1 | 1 || 2 | 1 || 3 | 1 || 4 | 2 || 5 | 1 || 6 | 2 || 7 | 2 |+----++

For example, given the above Logs table, 1 is the only number that appears consecutively for at least three times.

例如,給定上面的logs表,其中 「1」 是唯一一個出現至少連續三次的數字。

+--+| ConsecutiveNums |+--+| 1 |+--+

▌參考答案

參考1:

select distinct (l1.Num) as ConsecutiveNums 
from Logs l1
left join Logs l2 on l1.Id = l2.Id - 1
left join Logs l3 on l1.Id = l3.Id - 2
where l1.Num = l2.Num and l2.Num = l3.Num;

參考2:

Select distinct(l1.num) as consecutivenums 
from Logs l1, Logs l2, Logs l3 
where l1.num = l2.num and l2.num = l3.num and 
l2.id = l1.id+1 and l3.id = l2.id+1;

▌答案解析


參考1:創建將3個自連接表,並通過減法把3個表中3個連續id連接起來。最後使用where條件限制3個連續id對應的num值相等。

參考2:其實和參考1是一個思路,不同的地方是自連接是完全按照原有id來連接的,沒有錯位,而錯位的地方在where的限制條件中:3個id的大小順序用加法實現。




來個三連吧

相關焦點

  • 【SQL刷題系列】:leetcode178 Rank Scores
    (點擊上方藍色,快速關注)SQL刷題系列:SQL作為一種資料庫查詢和程序設計語言,是從事數據技術人員必備的技能
  • 【SQL刷題系列】:leetcode183 Customers Who Never Order
    (點擊上方藍色,快速關注)SQL刷題系列:SQL作為一種資料庫查詢和程序設計語言,是從事數據技術人員必備的技能
  • 【每日一題】leetcode刷題指南之Longest Consecutive Sequence
    used.end())    {        used[right]=true;        right++;    }    ans=max(ans,right-left-1);}return ans;}作者:東大ACM退役隊伍編輯:劉凱旋推薦閱讀:leetcode
  • Leetcode SQL刷題集錦(問題+答案)
    思路截至到2020年10月3日,Leetcode上的SQL免費題大概有20道題,本篇文章主要回顧一下這些免費題。
  • leetcode刷題最強指南(版本1.0)
    為什麼會有這篇刷題指南很多剛開始刷題的同學都有一個困惑:面對leetcode上近兩千道題目,從何刷起
  • 【真題解析】SQL面試常見套路:window function
    在文末,我們會附上一系列利用window function解決的經典題。希望你讀完有所收穫。(預計閱讀時間5分鐘)首先來看一遍今天要分析的題目:The Employee table holds all employees. Every employee has an Id, and there is also a column for the department Id.
  • C#刷遍Leetcode面試題系列連載(1) - 入門與工具簡介
    刷LeetCode有哪些好處?刷 OJ 時,大家還會常用兩個詞:刷題時大家的一致感覺是: AC一時爽,一直AC一直爽!LeetCode刷題時的心態建設在本文開頭,我們提到了很多行內名廠需要考察與 LeetCode 難度難度相當的算法題。
  • C#刷遍Leetcode面試題系列連載(2): No.38 - 報數
    前言前文傳送門:C#
  • 網際網路公司最常見的面試算法題大集合!
    很多求職者都會在LeetCode刷上一遍,面試官也喜歡在上面挑選各類題目。LeetCode是一個美國的在線編程網站,收集了各個大廠的筆試面試題,對找工作的畢業生和開發者來說,非常有價值。不過LeetCode上面的題目很多都是考察應聘者對基礎知識的應用,適合進行練習編程基礎或者準備面試。很多求職者都會在LeetCode刷上一遍,面試官也喜歡在上面挑選各類題目。
  • LeetCode刷題第三周【數組(簡單)】
    參考資料[1]Leetcode網站: https://leetcode-cn.com/[2]以上文字描述均來自 LeetCode數組模塊: https://leetcode-cn.com/tag/array/[3]刷題請點擊或見附錄:1539.
  • [LeetCode] 1022. Sum of Root To Leaf Binary Numbers 從根到葉的二進位數之和
    For all leaves in the tree, consider the numbers represented by the path from the root to that leaf.Return the sum of these numbers. The answer is guaranteed to fit in a 32-bits integer.
  • 網際網路公司最常見的面試算法題大集合
    很多求職者都會在LeetCode刷上一遍,面試官也喜歡在上面挑選各類題目。LeetCode是一個美國的在線編程網站,收集了各個大廠的筆試面試題,對找工作的畢業生和開發者來說,非常有價值。不過LeetCode上面的題目很多都是考察應聘者對基礎知識的應用,適合進行練習編程基礎或者準備面試。很多求職者都會在LeetCode刷上一遍,面試官也喜歡在上面挑選各類題目。
  • LeetCode按照怎樣的順序來刷題比較好?
    分享一下身邊大神的刷題順序:如果你時間比較緊迫,為了找工作而刷題,我建議你先刷熱門推薦,一共兩百多道題。先刷熱題 HOT 100,再刷精選 TOP 面試題,之後刷其他的題。如果你時間比較充裕,那我建議你:按從低到高的難度分組刷按 tag 分類刷定期複習,重做之前刷過的題掌握 LeetCode 刷題方法再開始刷題,屬於磨刀不誤砍柴工。
  • leetcode刷題指南之RussianDollEnvelopes
    j].second)15                dp[i]=max(dp[i],dp[j]+1);16    int ans=0;17    for(int i=0;i<n;i++)18        ans=max(ans,dp[i]);19    return ans;20}21};推薦閱讀:leetcode
  • ​LeetCode刷題實戰39:組合總和
    所以,為了提高大家的算法能力,這個公眾號後續每天帶大家做一道算法題,題目就從LeetCode上面選 !今天和大家聊的問題叫做 組合總和,我們先來看題面:https://leetcode-cn.com/problems/combination-sumGiven a set of candidate numbers (candidates) (without duplicates) and a target number (target
  • leetcode刷題指南之PatchingArray
    +]; 9        else{10            ans++;11            sum += sum+1;12        }13    }14    return ans;15}16};作者:東大ACM退役隊伍編輯:劉凱旋推薦閱讀:leetcode
  • 網際網路公司最常見的面試算法題大集合!
    很多求職者都會在LeetCode刷上一遍,面試官也喜歡在上面挑選各類題目。今天給大家推薦的這個GitHub項目,是Repo主自己刷題的心路歷程,並給出了解題參考。leetcode官方帳號在知乎上給出的一個《網際網路公司最常見的面試算法題有哪些?》的答案,原文地址: https://www.zhihu.com/question/24964987/answer/586425979一張網際網路公司面試中經常考察的問題類型總結的思維導圖,我們可以結合圖片中的信息分析一下。
  • leetcode刷題指南之shortestPalindrome
    i+1;18        }19    }20    for (int i = len; i < n; i++) {21        s += h[i];22    }23    return s;24}25};作者:東大ACM退役隊伍編輯:劉凱旋推薦閱讀:leetcode
  • leetcode刷題指南之PalindromePairs
    = i)25                    ans.push_back({ma[r], i});26            }27        }28        return ans;29    }30};作者:東大ACM退役隊伍編輯:劉凱旋推薦閱讀:leetcode刷題指南之
  • LeetCode刷題筆記(1)
    一個人的命運啊,不僅要考慮歷史的進程,還要考慮個人的努力,近期明顯懈怠下來的筆者決定開啟LeetCode刷題大業,從第一題開始按順序刷掉LeetCode