0% found this document useful (0 votes)
85 views

SQL Queries Set-1

The document contains SQL statements that create tables to log exercise data, insert sample data, perform queries on the data, and analyze the results. Key tables created include exercise_logs to store entries and drs_favorites for types of exercise recommended by doctors. Various SELECT statements retrieve, filter, aggregate, and analyze the exercise log data in different ways such as counting entries by heart rate zone or totaling calories by exercise type.

Uploaded by

Ankur Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
85 views

SQL Queries Set-1

The document contains SQL statements that create tables to log exercise data, insert sample data, perform queries on the data, and analyze the results. Key tables created include exercise_logs to store entries and drs_favorites for types of exercise recommended by doctors. Various SELECT statements retrieve, filter, aggregate, and analyze the exercise log data in different ways such as counting entries by heart rate zone or totaling calories by exercise type.

Uploaded by

Ankur Kumar
Copyright
© © All Rights Reserved
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 4

CREATE TABLE exercise_logs

(id INTEGER PRIMARY KEY ,


type VARCHAR2(100),
minutes INTEGER,
calories INTEGER,
heart_rate INTEGER);
create SEQUENCE exercise_seq;
INSERT INTO exercise_logs(id, type, minutes, calories, heart_rate) VALUES (exerc
ise_seq.nextval, 'biking', 30, 100, 110);
INSERT INTO exercise_logs(id, type, minutes, calories, heart_rate) VALUES (exerc
ise_seq.nextval, 'biking', 10, 30, 105);
INSERT INTO exercise_logs(id , type, minutes, calories, heart_rate) VALUES (exer
cise_seq.nextval , 'dancing', 15, 200, 120);
INSERT INTO exercise_logs(id , type, minutes, calories, heart_rate) VALUES (exer
cise_seq.nextval ,"biking", 30, 100, 110);
INSERT INTO exercise_logs(id , type, minutes, calories, heart_rate) VALUES (exer
cise_seq.nextval ,"biking", 10, 30, 105);
INSERT INTO exercise_logs(id , type, minutes, calories, heart_rate) VALUES (exer
cise_seq.nextval ,"dancing", 15, 200, 120);
INSERT INTO exercise_logs(id , type, minutes, calories, heart_rate) VALUES (exer
cise_seq.nextval ,"tree climbing", 30, 70, 90);
INSERT INTO exercise_logs(id , type, minutes, calories, heart_rate) VALUES (exer
cise_seq.nextval ,"tree climbing", 25, 72, 80);
INSERT INTO exercise_logs(id , type, minutes, calories, heart_rate) VALUES (exer
cise_seq.nextval ,"rowing", 30, 70, 90);
INSERT INTO exercise_logs(id , type, minutes, calories, heart_rate) VALUES (exer
cise_seq.nextval ,"hiking", 60, 80, 85);
select * from EXERCISE_LOGS;
SELECT * FROM exercise_logs WHERE calories > 50 ORDER BY calories;
SELECT * FROM exercise_logs WHERE calories > 50 AND minutes < 30;
SELECT * FROM exercise_logs WHERE calories > 50 OR heart_rate > 100;
SELECT * FROM exercise_logs WHERE type = 'biking' OR type = 'hiking' OR type = '
tree climbing' OR type = 'rowing';
SELECT * FROM exercise_logs WHERE type IN ('biking', 'hiking', 'tree climbing',
'rowing');
CREATE TABLE drs_favorites
(id INTEGER PRIMARY KEY,
type VARCHAR(240),
reason VARCHAR(100));
INSERT INTO drs_favorites(id, type, reason) VALUES (exercise_seq.nextval,'biking
', 'Improves endurance and flexibility.');
INSERT INTO drs_favorites(id, type, reason) VALUES (exercise_seq.nextval,'hiking
', 'Increases cardiovascular health.');
SELECT type FROM drs_favorites;
SELECT * FROM exercise_logs WHERE type IN (SELECT type FROM drs_favorites);
SELECT * FROM exercise_logs WHERE type IN (SELECT type FROM drs_favorites WHERE
reason = 'Increases cardiovascular health.');
SELECT * FROM exercise_logs WHERE type IN (SELECT type FROM drs_favorites WHERE
reason LIKE '%cardiovascular%');
SELECT * FROM exercise_logs;
SELECT type, SUM(calories) AS total_calories FROM exercise_logs GROUP BY type;
SELECT type, SUM(calories) AS total_calories FROM exercise_logs GROUP BY type H
AVING total_calories > 150 ;
SELECT type, AVG(calories) AS avg_calories FROM exercise_logs GROUP BY type HAV
ING avg_calories > 70 ;
SELECT type FROM exercise_logs GROUP BY type HAVING COUNT(*) >= 2;

SELECT * FROM exercise_logs;


SELECT COUNT(*) FROM exercise_logs WHERE heart_rate > 220 - 30;
# ############## /* 50-90% of max*/ ###############
SELECT COUNT(*) FROM exercise_logs WHERE
heart_rate >= ROUND(0.50 * (220-30))
AND heart_rate <= ROUND(0.90 * (220-30));
# ############## /* CASE */ ###############
SELECT type, heart_rate,
CASE
WHEN heart_rate > 220-30 THEN "above max"
WHEN heart_rate > ROUND(0.90 * (220-30)) THEN "above target"
WHEN heart_rate > ROUND(0.50 * (220-30)) THEN "within target"
ELSE "below target"
END as "hr_zone"
FROM exercise_logs;
SELECT COUNT(*),
CASE
WHEN heart_rate > 220-30 THEN "above max"
WHEN heart_rate > ROUND(0.90 * (220-30)) THEN "above target"
WHEN heart_rate > ROUND(0.50 * (220-30)) THEN "within target"
ELSE "below target"
END as "hr_zone"
FROM exercise_logs
GROUP BY hr_zone;
********************************************************************************
***********************************
********************************************************************************
***********************************
# 1 ############## To fetch ALTERNATE records from a table. (EVEN NUMBERED)
###############
select * from emp where rowid in (select decode(mod(rownum,2),0,rowid, n
ull) from emp);
# 2 ############## To select ALTERNATE records from a table. (ODD NUMBERED)
###############
select * from emp where rowid in (select decode(mod(rownum,2),0,null ,ro
wid) from emp);
# 3 ############## Find the 3rd MAX salary in the emp table. ###############
select distinct sal from emp e1 where 3 = (select count(distinct sal) fr
om emp e2 where e1.sal <= e2.sal);
# 4 ############## Find the 3rd MIN salary in the emp table. ###############
select distinct sal from emp e1 where 3 = (select count(distinct sal) fr
om emp e2where e1.sal >= e2.sal);
# 5 ############## Select FIRST n records from a table.
select * from emp where rownum <= &n;

###############

# 6 ############## Select LAST n records from a table ###############


select * from emp minus select * from emp where rownum <= (select count(
*) - &n from emp);

# 7 ############## List dept no., Dept name for all the departments in which t
here are no employees in the department. ###############
select * from dept where deptno not in (select deptno from emp);
alternate solution:
select * from dept a where not e
xists (select * from emp b where a.deptno = b.deptno);
altertnate solution:
select empno,ename,b.deptno,dnam
e from emp a, dept b where a.deptno(+) = b.deptno and empno is null;
# 8 ############## How to get 3 Max salaries ? ###############
select distinct sal from emp a where 3 >= (select count(distinct sal) fr
om emp b where a.sal <= b.sal) order by a.sal desc;
# 9 ############## How to get 3 Min salaries ? ###############
select distinct sal from emp a where 3 >= (select count(distinct sal) f
rom emp b where a.sal >= b.sal);
# 10 ############## Select DISTINCT RECORDS from emp table. ###############
select * from emp a where rowid = (select max(rowid) from emp b where
a.empno=b.empno);
# 11 ############## How to delete duplicate rows in a table? ###############
delete from emp a where rowid != (select max(rowid) from emp b where a.
empno=b.empno);
# 12 ############## Count of number of employees in department wise. #####
##########
select count(EMPNO), b.deptno, dname from emp a, dept b where a.deptno(
+)=b.deptno group by b.deptno,dname;
# 13 ############## In emp table add comm+sal as total sal.
select ename,(sal+nvl(comm,0)) as totalsal from emp;
# 14 ##############

Select any salary <3000 from emp table.

###############
###############

select * from emp where sal> any(select sal from emp where sal<3000);
# 15 ############## How can I create an empty table emp1 with same structure a
s emp? ###############
Create table emp1 as select * from emp where 1=2;
# 16 ############## Select all records where dept no of both emp and dept tabl
e matches. ###############
select * from emp where exists(select * from dept where emp.deptno=dept.
deptno)
# 17 ############## If there are two tables emp1 and emp2, and both have commo
n record. How can I fetch all the recods but common records only once? #######
########

(Select * from emp) Union (Select * from emp1)


# 18 ############## How to fetch only common records from two tables emp and e
mp1? ###############
(Select * from emp) Intersect (Select * from emp1)
# 19 ############## How can I retrive all records of emp1 those should not pre
sent in emp2? ###############
(Select * from emp) Minus (Select * from emp1)
# 20 ############## Count the totalsa deptno wise where more than 2 employees
exist. ###############
SELECT deptno, sum(sal) As totalsal
FROM emp
GROUP BY deptno
HAVING COUNT(empno) > 2

You might also like