SQL每日一练

前言:

昨天没更,准备下项目今天打算面字节。跟大家分享下,很抽象,上来就是自我介绍加说手撕sql,感觉不难但是很抽象,没a出来。然后换了到sql,一样没做出来,最后换了个算法,做出来了,然后啥没问,基本挂了。看来sql能力还是有待提高,所以新开一个系列,sql每日一练,也可能每日多练分好几天发,嘿嘿。对了,下周四考试,中间少投简历了,打算先复习考试。

对了面了沐数科技做了笔试,以为是习题,结果是找规律和性格测试,昨天看了看这家公司之前的sql题贮备了下,感觉还不错(至少正常且合理),就拿这个题来一套。

题目:

1、查询每个表2020年9月法国,英国销售综合,结果输出国家、产品id、产品名称、销售金额。

2、2020年9月英国销售金额最高的产品是哪个?销售金额是多少(四舍五入整数)?如产品A 1000

产品表 p

product_idproduct_name
1产品 A
2产品 B
3产品 C

销售表 s

sale_idproduct_idcountryamountsale_date
11法国1000.002020-09-15
22法国1500.002020-09-20
33法国800.002020-09-10
41英国1200.002020-09-25
52英国1600.002020-09-05
63英国900.002020-09-30

 第一问: (很简单根据想要的结构查询做一个连接就ok)

SELECT 
    s.country,
    p.product_id,
    p.product_name,
    SUM(s.amount) AS total_sales
FROM 
    sales s
JOIN 
    products p ON s.product_id = p.product_id
WHERE 
    s.country IN ('法国', '英国')
    AND s.sale_date BETWEEN '2020-09-01' AND '2020-09-30'
GROUP BY 
    s.country,
    p.product_id,
    p.product_name
ORDER BY 
    s.country,
    p.product_id; 

 第二问:根据结果select+表连接最后加个limit限制条件即可

SELECT
    p.product_name,
    SUM(s.amount) AS total_sales
FROM
    sales s
JOIN
    product p ON s.product_id = p.product_id
WHERE
    s.country = '英国'
    AND s.sale_date BETWEEN '2020-09-01' AND '2020-09-30'
GROUP BY
    p.product_name
ORDER BY
    total_sales DESC
LIMIT 1;    

        

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

佩可official

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值