Download as txt, pdf, or txt
Download as txt, pdf, or txt
You are on page 1of 2

select * from continents;

select * from countries;

drop table continents;


create table continents
(
continent_code varchar(2),
continent_name varchar(20)
);

insert into continents values


('AS', 'Asia'),
('AF', 'Africa'),
('NA', 'North America'),
('SA', 'South America'),
--('AN', 'Antarctica'),
('EU', 'Europe'),
('AU', 'Australia');
COMMIT;

drop table countries;


create table countries
(
country_code varchar(3),
country_name varchar(50),
continent_code varchar(2)
);
insert into countries values
('IN', 'India', 'AS'),
--('MY', 'Malaysia', 'AS'),
--('LT', 'Lithuania', 'EU'),
--('DE', 'Germany', 'EU'),
('ZA', 'South Africa', 'AF'),
--('NG', 'Nigeria', 'AF'),
('US', 'United States of America', 'NA'),
--('CA', 'Canda', 'NA'),
('BR', 'Brazil', 'SA'),
--('AR', 'Argentina', 'SA'),
('AU', 'Australia', 'AU'),
('AQ', 'Antarctica', 'AN');
COMMIT;

Question #4:
What are different types of JOIN?

-- INNER Join
select cr.country_name, ct.continent_name
from continents ct
inner join countries cr on ct.continent_code = cr.continent_code;

-- LEFT Join
select cr.country_name, ct.continent_name
from continents ct
left join countries cr on ct.continent_code = cr.continent_code;

-- RIGHT Join
select cr.country_name, ct.continent_name
from continents ct
right join countries cr on ct.continent_code = cr.continent_code;

-- FULL OUTER Join


select cr.country_name, ct.continent_name
from continents ct
full outer join countries cr on ct.continent_code = cr.continent_code;

-- NATURAL Join
select cr.country_name, ct.continent_name
from continents ct
natural join countries cr;

-- CROSS Join
select cr.country_name, ct.continent_name
from continents ct
CROSS join countries cr;

-- SELF Join
select cr1.country_name
from countries cr1
inner join countries cr2 on cr1.country_code = cr2.continent_code;

Question #8:
What is the difference between RANK, DENSE_RANK and ROW_NUMBER windows functions?

DROP TABLE managers;


CREATE TABLE managers
(
id INT
, name VARCHAR(50)
, salary INT
);

INSERT INTO managers VALUES


(1, 'Jeff', 8000),
(2, 'Elon', 5000),
(3, 'Mukesh', 5000),
(4, 'Warren', 4000),
(6, 'Bill', 2000);

SELECT * FROM managers;

SELECT *
, RANK() OVER(ORDER BY salary DESC) AS ranks
, DENSE_RANK() OVER(ORDER BY salary DESC) AS dense_ranks
, ROW_NUMBER() OVER(ORDER BY salary DESC) AS row_numbers
FROM managers;

You might also like