Task04:集合运算-表的加减法和join等-天池龙珠计划SQL训练营

4.1找出 product 和 product2 中售价高于 500 的商品的基本信息。

4.2借助对称差的实现方式, 求product和product2的交集。

SELECT *
	FROM product
    WHERE product_id IN (SELECT product_id FROM product2)
UNION
SELECT *
	FROM product2
    WHERE product_id IN (SELECT product_id FROM product);

4.3每类商品中售价最高的商品都在哪些商店有售 ?

SELECT P.product_id, 
		P.product_name,
        P.product_type,
        MAX(P.sale_price) AS max_price,
        sp.shop_name
	FROM product AS P  
INNER JOIN shop_product as sp
ON P.product_id=SP.product_id
GROUP BY P.product_type;

4.4分别使用内连结和关联子查询每一类商品中售价最高的商品。

SELECT product_type,
		MAX(sale_price) AS MAX_price
FROM product 
GROUP BY product_type;

4.5用关联子查询实现:在product表中,取出 product_id, produc_name, slae_price, 并按照商品的售价从低到高进行排序、对售价进行累计求和。

SELECT product_id
		,product_name
        ,sale_price
        ,SUM(P2_price) AS SUM_sale_price
FROM 
		(SELECT P1.product_id,
				P1.product_name,
                P1.sale_price,
                P2.product_id AS P2_id,
                P2.product_name AS P2_name,
                P2.sale_price AS P2_price
			FROM product AS P1
            LEFT OUTER JOIN product AS P2
            ON((P1.sale_price>P2.sale_price
			OR P1.sale_price=P2.sale_price
            AND P1.product_id<=P2.product_id))
            ORDER BY P1.product_id,P1.sale_price
            ) AS X
GROUP BY product_id,product_name,sale_price
ORDER BY sale_price,SUM_sale_price;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值