Skip to content

Instantly share code, notes, and snippets.

@stelf
Last active May 30, 2017 16:26
Show Gist options
  • Save stelf/e79682e00eaa109e6093a9c9ccd16609 to your computer and use it in GitHub Desktop.
Save stelf/e79682e00eaa109e6093a9c9ccd16609 to your computer and use it in GitHub Desktop.

задачи (без обобщение / aggregate ):

  1. да се изведат имената и годината на производство на всички филми издадени м/у 1980 и 1995 година
SELECT 
	TITLE, YEAR
FROM
	MOVIE
WHERE 
	YEAR BETWEEN 1980 AND 1995
  1. да се изведат имената на всички филми, в които участва артист с име Ford
SELECT 
	TITLE
FROM 
	MOVIE M
INNER JOIN
	STARSIN S 
ON 
	(M.YEAR = S.MOVIEYEAR AND M.TITLE = S.MOVIETITLE)
WHERE 
	S.STARNAME LIKE '%Ford%'
  1. да се изведат всички филми, които са от изпълнителен продуцент Ted Turner
SELECT 
	TITLE
FROM 
	MOVIE M
INNER JOIN
	MOVIEEXEC E 
ON 
	(M.PRODUCERC# = E.CERT#)
WHERE 
	E.NAME LIKE '%Turner%'

вариант 2

SELECT 
	TITLE
FROM 
	MOVIE M,
	MOVIEEXEC E 
WHERE 
	(M.PRODUCERC# = E.CERT#)
AND
	E.NAME LIKE '%Turner%'
  1. да се изведат филмите на продуценти, които работят с бюджет (networth) над 100000000
SELECT 
	TITLE
FROM 
	MOVIE M
INNER JOIN
	MOVIEEXEC E 
ON 
	(M.PRODUCERC# = E.CERT#)
WHERE 
	E.NETWORTH > 100000000
  1. да се изведат имената на артистите, които участват в цветни филми, които са с продължителност над 120 минути
SELECT 
	DISTINCT S.STARNAME
FROM 
	MOVIE M
INNER JOIN
	STARSIN S 
ON 
	(M.YEAR = S.MOVIEYEAR AND M.TITLE = S.MOVIETITLE)
WHERE 
	M.LENGTH >= 120
  1. да се изведат имената на всички артисти и евентуално филмите, в които участват като за резултата се използва подредба по азбучен ред на имена на артистите.
SELECT 
	S.NAME,
	SI.MOVIETITLE
FROM
	MOVIESTAR S
LEFT OUTER JOIN
	STARSIN SI ON (S.NAME = SI.STARNAME)
ORDER BY S.NAME ASC

задачи (с обобщение / aggregate ):

  1. да се изведат имената на продуценти и броят на филмите им, но само за продуценти които са изработили 2 или повече цветни (INCOLOR) филма
SELECT 
	E.NAME,
	COUNT(E.NAME)
FROM
	MOVIEEXEC E
INNER JOIN 
	MOVIE M
ON 
	E.CERT# = M.PRODUCERC#
WHERE 
	INCOLOR = 'Y'
GROUP BY 
	E.NAME
HAVING COUNT(E.NAME) >= 2
  1. да се изведе броят на черно белите и броят на белите филми
SELECT
	INCOLOR,
	COUNT(*)
FROM
	MOVIE
GROUP BY 
	INCOLOR
SELECT
	'Y',
	COUNT(*)
FROM
	MOVIE
WHERE
	INCOLOR = 'Y'

UNION

SELECT
	'N',
	COUNT(*)
FROM
	MOVIE
WHERE
	INCOLOR = 'N'
  1. да се изведе броят на цветните филми, които са с продължителност над 120 минути, но са създадени преди 1990г.
SELECT
	COUNT(TITLE)
FROM
	MOVIE
WHERE 
	LENGTH >= 120 AND YEAR <= 1990 AND INCOLOR = 'Y'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment