Skip to content

Commit 6d78703

Browse files
Added better solution and corrected the schema
1 parent 74632d0 commit 6d78703

File tree

2 files changed

+107
-13
lines changed

2 files changed

+107
-13
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
WITH cte AS(
2+
SELECT
3+
b.student_id,
4+
b.student_name,
5+
a.score,
6+
RANK() over(
7+
PARTITION by exam_id
8+
ORDER BY
9+
score DESC
10+
) top_rank,
11+
RANK() over(
12+
PARTITION by exam_id
13+
ORDER BY
14+
score
15+
) bottom_rank
16+
FROM
17+
school.students b
18+
LEFT OUTER JOIN school.exams a ON a.student_id = b.student_id
19+
),
20+
anti_sol AS(
21+
SELECT
22+
student_id,
23+
student_name
24+
FROM
25+
cte
26+
WHERE
27+
top_rank = 1
28+
OR bottom_rank = 1
29+
OR score IS NULL
30+
)
31+
SELECT
32+
student_id,
33+
student_name
34+
FROM
35+
school.students
36+
WHERE
37+
student_id NOT IN (
38+
SELECT
39+
student_id
40+
FROM
41+
anti_sol
42+
);

Restaurant Growth/schema.sql

Lines changed: 65 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,65 @@
1-
Create table If Not Exists Customer (customer_id int, name varchar(20), visited_on date, amount int)
2-
Truncate table Customer
3-
insert into Customer (customer_id, name, visited_on, amount) values ('1', 'Jhon', '2019-01-01', '100')
4-
insert into Customer (customer_id, name, visited_on, amount) values ('2', 'Daniel', '2019-01-02', '110')
5-
insert into Customer (customer_id, name, visited_on, amount) values ('3', 'Jade', '2019-01-03', '120')
6-
insert into Customer (customer_id, name, visited_on, amount) values ('4', 'Khaled', '2019-01-04', '130')
7-
insert into Customer (customer_id, name, visited_on, amount) values ('5', 'Winston', '2019-01-05', '110')
8-
insert into Customer (customer_id, name, visited_on, amount) values ('6', 'Elvis', '2019-01-06', '140')
9-
insert into Customer (customer_id, name, visited_on, amount) values ('7', 'Anna', '2019-01-07', '150')
10-
insert into Customer (customer_id, name, visited_on, amount) values ('8', 'Maria', '2019-01-08', '80')
11-
insert into Customer (customer_id, name, visited_on, amount) values ('9', 'Jaze', '2019-01-09', '110')
12-
insert into Customer (customer_id, name, visited_on, amount) values ('1', 'Jhon', '2019-01-10', '130')
13-
insert into Customer (customer_id, name, visited_on, amount) values ('3', 'Jade', '2019-01-10', '150')
1+
CREATE TABLE IF NOT EXISTS Customer (
2+
customer_id int,
3+
name varchar(20),
4+
visited_on date,
5+
amount int
6+
);
7+
8+
TRUNCATE TABLE Customer;
9+
10+
INSERT INTO
11+
Customer (customer_id, name, visited_on, amount)
12+
VALUES
13+
('1', 'Jhon', '2019-01-01', '100');
14+
15+
INSERT INTO
16+
Customer (customer_id, name, visited_on, amount)
17+
VALUES
18+
('2', 'Daniel', '2019-01-02', '110');
19+
20+
INSERT INTO
21+
Customer (customer_id, name, visited_on, amount)
22+
VALUES
23+
('3', 'Jade', '2019-01-03', '120');
24+
25+
INSERT INTO
26+
Customer (customer_id, name, visited_on, amount)
27+
VALUES
28+
('4', 'Khaled', '2019-01-04', '130');
29+
30+
INSERT INTO
31+
Customer (customer_id, name, visited_on, amount)
32+
VALUES
33+
('5', 'Winston', '2019-01-05', '110');
34+
35+
INSERT INTO
36+
Customer (customer_id, name, visited_on, amount)
37+
VALUES
38+
('6', 'Elvis', '2019-01-06', '140');
39+
40+
INSERT INTO
41+
Customer (customer_id, name, visited_on, amount)
42+
VALUES
43+
('7', 'Anna', '2019-01-07', '150');
44+
45+
INSERT INTO
46+
Customer (customer_id, name, visited_on, amount)
47+
VALUES
48+
('8', 'Maria', '2019-01-08', '80');
49+
50+
INSERT INTO
51+
Customer (customer_id, name, visited_on, amount)
52+
VALUES
53+
('9', 'Jaze', '2019-01-09', '110');
54+
55+
INSERT INTO
56+
Customer (customer_id, name, visited_on, amount)
57+
VALUES
58+
('1', 'Jhon', '2019-01-10', '130');
59+
60+
INSERT INTO
61+
Customer (customer_id, name, visited_on, amount)
62+
VALUES
63+
('3', 'Jade', '2019-01-10', '150');
64+
65+
COMMIT;

0 commit comments

Comments
 (0)