Skip to content

Commit

Permalink
Create consecutive-numbers.sql
Browse files Browse the repository at this point in the history
add new solution
  • Loading branch information
kamyu104 committed Jan 13, 2015
1 parent 64620ce commit 3a81ec9
Showing 1 changed file with 31 additions and 0 deletions.
31 changes: 31 additions & 0 deletions MySQL/consecutive-numbers.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
# Time: O(n)
# Space: O(n)
#
# Write a SQL query to find all numbers that appear at least three times consecutively.
#
# +----+-----+
# | 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.
#

# Write your MySQL query statement below
SELECT DISTINCT(Num) AS ConsecutiveNums
FROM (
SELECT
Num,
@counter := IF(@prev = Num, @counter + 1, 1) AS how_many_cnt_in_a_row,
@prev := Num
FROM
Logs y
, (SELECT @counter:=1, @prev:=NULL) vars
) sq
WHERE how_many_cnt_in_a_row >= 3

0 comments on commit 3a81ec9

Please sign in to comment.