Skip to content

Commit cc7cdca

Browse files
authored
updating sql queries
Mysql branch brings updates
2 parents 320fb1f + c65e2a2 commit cc7cdca

File tree

4 files changed

+51
-37
lines changed

4 files changed

+51
-37
lines changed

MySQL/consecutive-numbers.sql

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,11 @@
1+
/*
12
# Time: O(n)
23
# Space: O(n)
4+
*/
35

4-
SELECT DISTINCT(Num) AS ConsecutiveNums
5-
FROM (
6-
SELECT
7-
Num,
8-
@counter := IF(@prev = Num, @counter + 1, 1) AS how_many_cnt_in_a_row,
9-
@prev := Num
10-
FROM Logs y, (SELECT @counter:=1, @prev:=NULL) vars
11-
) sq
12-
WHERE how_many_cnt_in_a_row >= 3
13-
14-
SELECT DISTINCT l1.Num as ConsecutiveNums
15-
FROM Logs l1, Logs l2, Logs l3
16-
WHERE l1.Id + 1 = l2.Id AND l2.Id + 1 = l3.Id AND l1.Num = l2.Num AND l2.Num = l3.Num
6+
/** this is a ms sql script **/
177

8+
/* Write your T-SQL query statement below */
9+
SELECT DISTINCT l1.num AS ConsecutiveNums
10+
FROM Logs l1, Logs l2, Logs l3
11+
WHERE l1.id = l2.id - 1 AND l2.id = l3.id - 1 AND l1.num = l2.num AND l2.num = l3.num;

MySQL/duplicate-emails.sql

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
11
# Time: O(n^2)
22
# Space: O(n)
33

4-
SELECT Email FROM Person GROUP BY Email HAVING COUNT(*) > 1
4+
/** # Write your MySQL query statement below **/
5+
6+
SELECT Email
7+
FROM Person
8+
GROUP BY Email
9+
HAVING COUNT(*) > 1
510

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
# Time: O(n^2)
22
# Space: O(1)
33

4-
SELECT e.Name AS Employee FROM Employee e LEFT JOIN Employee b
5-
ON e.ManagerId=b.Id
6-
WHERE e.Salary > b.Salary
7-
8-
SELECT Name AS Employee
9-
FROM Employee e
10-
WHERE e.ManagerId IS NOT NULL AND e.Salary > (SELECT Salary
11-
FROM Employee
12-
WHERE e.ManagerId = Id)
4+
SELECT e.Name AS Employee FROM Employee e LEFT JOIN Employee b
5+
ON e.ManagerId=b.Id WHERE e.Salary > b.Salary
6+
7+
/** # Write your MySQL query statement below **/
8+
/** solution two **/
9+
10+
SELECT e.name AS employee
11+
FROM employee AS e JOIN employee AS e1 ON e.managerid = e1.id
12+
WHERE e.salary > e1.salary;
1313

MySQL/product-price-at-a-given-date.sql

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,32 @@
1+
/*
12
# Time: O(mlogn), m is the number of unique product id, n is the number of changed dates
23
# Space: O(m)
4+
*/
5+
6+
SELECT
7+
t1.product_id AS product_id,
8+
IF(ISNULL(t2.price), 10, t2.price) AS price
9+
FROM
10+
(SELECT DISTINCT product_id
11+
FROM products) AS t1
12+
LEFT JOIN
13+
(SELECT
14+
product_id,
15+
new_price AS price
16+
FROM
17+
products
18+
WHERE
19+
(product_id, change_date) IN
20+
(SELECT
21+
product_id,
22+
MAX(change_date)
23+
FROM
24+
products
25+
WHERE
26+
change_date <= '2019-08-16'
27+
GROUP BY
28+
product_id)
29+
) AS t2
30+
ON
31+
t1.product_id = t2.product_id;
332

4-
SELECT t1.product_id AS product_id,
5-
IF(Isnull(t2.price), 10, t2.price) AS price
6-
FROM (SELECT DISTINCT product_id
7-
FROM products) AS t1
8-
left join (SELECT product_id,
9-
new_price AS price
10-
FROM products
11-
WHERE ( product_id, change_date ) IN (SELECT product_id,
12-
Max(change_date)
13-
FROM products
14-
WHERE change_date <= '2019-08-16'
15-
GROUP BY product_id))
16-
AS t2
17-
ON t1.product_id = t2.product_id

0 commit comments

Comments
 (0)