sql 汇总数据题目

customer 表

film表
payment表
rental
film_text
inventory表

1.在这里插入图片描述
SELECT concat(c.last_name,’,’, c.first_name) ‘name’,email,payment_id FROM customer c LEFT JOIN payment p ON c.customer_id=p.customer_id;

2.
SELECT f.title,f.description,r.rental_id FROM inventory i INNER JOIN rental r ON i.inventory_id=r.inventory_id
INNER JOIN film f ON f.film_id =i.film_id
WHERE rental_id IN (100,107);
解法2:
SELECT f.title,f.description,r.rental_id FROM inventory i INNER JOIN rental r USING (inventory_id)
INNER JOIN film f USING (film_id)
WHERE r.rental_id IN (100,107);
3.在这里插入图片描述


customer
payment

4.在这里插入图片描述
SELECT c.customer_id,concat(c.first_name,’ ',c.last_name) ‘name’,c.address_id,c.email,sum(p.amount) ‘total_expense’
FROM customer c LEFT JOIN payment p ON c.customer_id=p.customer_id
GROUP BY c.customer_id;

rental
在这里插入图片描述

SELECT r.rental_id,sum(p.amount) ‘Total Amount’,
p.customer_id,
DATEDIFF(r.return_date,r.rental_date) ‘Datediff’
FROM rental r
INNER JOIN payment p
ON r.rental_id=p.rental_id
GROUP BY r.rental_id
,customer_id
ORDER BY r.rental_id ASC;
6.
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
SELECT f.title,f.rental_duration ,i.inventory_id
FROM film f LEFT JOIN inventory i
ON f.film_id= i.film_id
WHERE f.rental_duration>3
AND f.title LIKE ‘B%’;

customer
PAYMENT
在这里插入图片描述
SELECT concat(first_name,last_name) ‘name’,count(p.rental_id) ‘COUNTS’,sum(p.amount) ‘TOTAL’ FROM customer c
LEFT JOIN payment p
ON c.customer_id=p.customer_id
WHERE p.rental_id BETWEEN 130 AND 160
GROUP BY c.customer_id ;

8.客户的花费大于所有客户的平均总花费

SELECT concat(c.first_name,’ ',c.last_name) ‘Name’
,COUNT(p.payment_id)counts
,SUM(p.amount) ‘Total amount’
FROM customer c
LEFT JOIN payment p ON c.customer_id=p.customer_id
WHERE p.rental_id in (SELECT rental_id FROM rental WHERE rental_id BETWEEN 130 AND 160)
AND p.amount >any (SELECT AVG(amount) FROM payment)
GROUP BY c.customer_id
ORDER BY SUM(p.amount),counts DESC;

customer

PAYMENT在这里插入图片描述
SELECT c., p. FROM customer c CROSS JOIN payment p;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值