Skip to content

Commit 8511eb9

Browse files
committed
Complete more exercises.
1 parent 92fafdd commit 8511eb9

File tree

1 file changed

+95
-1
lines changed

1 file changed

+95
-1
lines changed

sqlzoo.sql

Lines changed: 95 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -594,4 +594,98 @@ FROM actor JOIN casting ON id=actorid
594594
WHERE movieid IN (
595595
SELECT movieid FROM casting JOIN actor ON (actorid=id AND name='Art Garfunkel'))
596596
AND name != 'Art Garfunkel'
597-
GROUP BY name;
597+
GROUP BY name;
598+
599+
--USING NULL
600+
601+
--1
602+
603+
SELECT name
604+
FROM teacher
605+
WHERE dept IS NULL;
606+
607+
--2
608+
609+
SELECT teacher.name, dept.name
610+
FROM teacher INNER JOIN dept
611+
ON (teacher.dept=dept.id);
612+
613+
--3
614+
615+
SELECT teacher.name, dept.name
616+
FROM teacher LEFT JOIN dept
617+
ON (teacher.dept=dept.id);
618+
619+
--4
620+
621+
SELECT teacher.name, dept.name
622+
FROM teacher RIGHT JOIN dept
623+
ON (teacher.dept=dept.id);
624+
625+
--5
626+
627+
SELECT name,
628+
COALESCE(mobile, '07986 444 2266')
629+
FROM teacher;
630+
631+
--6
632+
633+
SELECT COALESCE(teacher.name, 'NONE'), COALESCE(dept.name, 'None')
634+
FROM teacher LEFT JOIN dept ON (teacher.dept=dept.id);
635+
636+
--7
637+
638+
SELECT COUNT(name), COUNT(mobile)
639+
FROM teacher;
640+
641+
--8
642+
643+
SELECT dept.name, COUNT(teacher.name)
644+
FROM teacher RIGHT JOIN dept ON (teacher.dept=dept.id)
645+
GROUP BY dept.name
646+
647+
--9
648+
649+
SELECT teacher.name,
650+
CASE WHEN dept.id = 1 THEN 'Sci'
651+
WHEN dept.id = 2 THEN 'Sci'
652+
ELSE 'Art' END
653+
FROM teacher LEFT JOIN dept ON (teacher.dept=dept.id)
654+
655+
--10
656+
657+
SELECT teacher.name,
658+
CASE
659+
WHEN dept.id = 1 THEN 'Sci'
660+
WHEN dept.id = 2 THEN 'Sci'
661+
WHEN dept.id = 3 THEN 'Art'
662+
ELSE 'None' END
663+
FROM teacher LEFT JOIN dept ON (dept.id=teacher.dept)
664+
665+
--Window Function
666+
667+
--1
668+
669+
SELECT lastName, party, votes
670+
FROM ge
671+
WHERE constituency = 'S14000024' AND yr = 2017
672+
ORDER BY votes DESC;
673+
674+
--2
675+
676+
SELECT party, votes,
677+
RANK() OVER (ORDER BY votes DESC) as posn
678+
FROM ge
679+
WHERE constituency = 'S14000024' AND yr = 2017
680+
ORDER BY party;
681+
682+
--3
683+
684+
SELECT yr,party, votes,
685+
RANK() OVER (PARTITION BY yr ORDER BY votes DESC) as posn
686+
FROM ge
687+
WHERE constituency = 'S14000021'
688+
ORDER BY party,yr
689+
690+
--4
691+

0 commit comments

Comments
 (0)