【大厂真题】SQL25题解 | 商品交易(网易校招笔试真题)

# 需求分析
# 查找购买个数超过20,
# 质量小于50的商品,
# 按照商品id升序排序

        SELECT a.id,a.name,MAX(a.weight) AS weight,SUM(b.count) as total
        FROM goods a
   LEFT JOIN trans b 
        on a.id=b.goods_id
      group by a.id,a.name
      having   MAX(a.weight)<50
        and SUM(b.count)>20
      order by a.id asc
  1. 先对trans表中每个商品的购买数量的求和。
  2. 将trans表与goods表用商品id进行连接。
  3. 利用where语句进行筛选,并用id进行排序。

复制代码

1

2

3

4

5

6

7

8

9

10

select g.id, g.name, g.weight,a.total

from goods g join (

select t.goods_id, sum(t.count) as total

from trans t

group by t.goods_id

) a

on g.id = a.goods_id

where g.weight < 50

and a.total > 20

order by id

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务