SQL Questions
SQL Questions
-- Question 1a
USE sakila;
-- Question 1b
USE sakila;
-- Question 2a
USE saklia;
-- Question 2b
USE sakila;
SELECT last_name
FROM actor
WHERE last_name LIKE '%GEN%';
-- Question 2c
USE Sakila;
-- Question 2d
USE Sakila;
-- Question 3a
USE Sakila;
-- Question 3b
-- 4a. List the last names of actors, as well as how many actors have that last name.
SELECT last_name, COUNT(last_name) as "Count of Last Name"
FROM actor
GROUP BY last_name;
-- 4b. List last names of actors and the number of actors who have that last name, but only
for names
-- that are shared by at least two actors
SELECT last_name, COUNT(last_name) as "Count of Last Name"
FROM actor
GROUP BY last_name
HAVING COUNT(last_name) >=2;
-- 4c. Oh, no! The actor HARPO WILLIAMS was accidentally entered in the actor table as
-- GROUCHO WILLIAMS, the name of Harpo's second cousin's husband's yoga teacher.
-- Write a query to fix the record.
UPDATE actor
SET first_name = 'Harpo'
WHERE first_name = 'GROUCHO' AND last_name = 'WILLIAMS';
-- 4d. Perhaps we were too hasty in changing GROUCHO to HARPO. It turns out that
-- GROUCHO was the correct name after all! In a single query, if the first name of the actor
is currently
-- HARPO, change it to GROUCHO. Otherwise, change the first name to MUCHO GROUCHO, as that
-- is exactly what the actor will be with the grievous error. BE CAREFUL NOT TO CHANGE THE
FIRST NAME
-- OF EVERY ACTOR TO MUCHO GROUCHO, HOWEVER! (Hint: update the record using a unique
identifier.)--
UPDATE actor
SET first_name =
CASE
WHEN first_name = 'HARPO'
THEN 'GROUCHO'
ELSE 'MUCHO GROUCHO'
END
WHERE actor_id = 172;
-- 5a. You cannot locate the schema of the address table. Which query would you use to re-
create it?
-- 6a. Use JOIN to display the first and last names, as well as the address, of each staff
member. Use the
-- tables staff and address:
-- 6b. Use JOIN to display the total amount rung up by each staff member in August of 2005.
Use tables
-- staff and payment.
SELECT first_name, last_name, SUM(amount)
FROM staff s
INNER JOIN payment p
ON s.staff_id = p.staff_id
GROUP BY p.staff_id
ORDER BY last_name ASC;
-- 6c. List each film and the number of actors who are listed for that film. Use tables
film_actor and film.
-- Use inner join.
-- 6d How many copies of the film Hunchback Impossible exist in the inventory system?
-- 6e. Using the tables payment and customer and the JOIN command, list the total paid by each
customer. List the customers alphabetically
-- by last name:
-- 7a. The music of Queen and Kris Kristofferson have seen an unlikely resurgence. As an
unintended consequence, films starting
-- with the letters K and Q have also soared in popularity. Use subqueries to display the
titles of movies starting with the letters K and Q whose
-- language is English.
USE Sakila;
-- 7b. Use subqueries to display all actors who appear in the film Alone Trip.
USE Sakila;
-- 7c. You want to run an email marketing campaign in Canada, for which you will need the
names and email addresses of all Canadian customers.
-- Use joins to retrieve this information.
USE Sakila;
-- 7d. Sales have been lagging among young families, and you wish to target all family movies
for a promotion. Identify all movies
-- categorized as family films.
USE Sakila;
USE Sakila;
-- 7f. Write a query to display how much business, in dollars, each store brought in.
-- 7g. Write a query to display for each store its store ID, city, and country.
USE Sakila;
-- 7h. List the top five genres in gross revenue in descending order. (Hint: you may need to
use the following
-- tables: category, film_category, inventory, payment, and rental.)
USE Sakila;
-- 8a. In your new role as an executive, you would like to have an easy way of
-- viewing the top five genres by gross revenue. Use the solution from the
-- problem above to create a view. If you haven't solved 7h, you can substitute
-- another query to create a view.
USE Sakila;
-- 8c. You find that you no longer need the view top_five_genres.
-- Write a query to delete it.