SQL每日一练

发布于:2025-05-25 ⋅ 阅读:(17) ⋅ 点赞:(0)

前言:

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

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

题目:

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

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

产品表 p

product_id product_name
1 产品 A
2 产品 B
3 产品 C

销售表 s

sale_id product_id country amount sale_date
1 1 法国 1000.00 2020-09-15
2 2 法国 1500.00 2020-09-20
3 3 法国 800.00 2020-09-10
4 1 英国 1200.00 2020-09-25
5 2 英国 1600.00 2020-09-05
6 3 英国 900.00 2020-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;    

        


网站公告

今日签到

点亮在社区的每一天
去签到