【9.20作业】Lesson 3 SQL作业提问帖



  • Part 1:

    (1 hour for design, 1 hour for additional statistical needs)

    根据下面的信息:

    • 设计一个数据库(包含entity、relationship、attributes,and ER Diagram)
    • 说明设计数据库过程中,你都做了哪些假设
    • 在设计好数据库后,用Query语句解决所有统计需求(可选)

    场景:太阁员工信息管理数据库

    基本需求:

    • 查询到员工的基本信息,如姓名、性别、电话、电邮、住址、录用日期、直接领导、薪水、职位、部门、工作地址(包括街道号码名称、城市、州、zipcode)

    统计需求:(可选)

    • 在加州的部门有哪些
    • 哪个部门的平均工资最高
    • 5月份所有销售部门员工的薪水表
    • 销售部收入第三高的员工
    • 整理出所有员工和对应领导
    • 高级工程师的5月份的平均工资是多少

    Part 2:

    (1 hour including read related materials)

    利用W3school联系基本SQL语句:

    • 基础问题(5道,必做)
    • 高阶问题(3道,可选)

    Homework Website:http://www.w3schools.com/sql/trysql.asp?filename=trysql_select_all

    基础问题:

    1. 找到CustomerName中包含“Fran”的客户,返回他们的Address, City, PostalCode, Country
    2. 找到EmployeeID为5,或ShipperID为1的CustomerID,无重复项,返回CustomerID按正序排序
    3. 计算每个订单的购买商品总数,返回OrderID,Total(商品总数),按商品总数从最多到最少排序
    4. 找到所有价格超过50的商品,返回供应商名
    5. 找到Beverages Category下面的所有商品,返回商品名,按价格从大到小排序

    进阶问题:

    1. 找到所有用户的总花费,按花费最多到最少排序,返回所有CustomerName及总花费
    2. 找到提供超过4个产品的供应商,返回这些供应商的名字及供应商一共供应多少个商品

    若觉得进阶问题比较简单,建议可以尝试做一些Leetcode里面hard的题。
    如:https://leetcode.com/problems/trips-and-users/



  • 请问,在写query的时候,逻辑是应该怎样的?因为slides里面有的比较复杂,有没有什么逻辑可以去follow来设计query呢?



  • 建议可以先从简单的入手,先解决一个表格当中可以解决的问题;
    然后写两张表格关联的问题。

    一步步下来,每个人写Query的逻辑其实可能都是不一样的,所以没必要去follow一个人的逻辑,多练习,慢慢的就会发现有自己的逻辑了。

    我的个人习惯是看到一个问题,先把问题拆解,看要解决这个问题需要有哪些信息,这些信息我需要怎样写Query能得到,然后再把最后几个子问题作出来的拼接到一起。这不一定是最好的方式,但对我来说能想清楚。

    建议你可以去Ebook重新看一下PPT,我前两道问题的思路还是比较清晰的。

    比如第一道题,想要算出五月份的Profit,首先要找到五月份的Order,然后看到Order表格当中只有productid跟quantity,还需要知道对应每个product的price跟cost,所以转到了product表格。

    你可以通过作业题试一试~我最后会把作业题我写的query share给大家的,不用担心。如果感觉作业题比较难,就自己给自己出一个小题,先从一张表格练起~加油!


登录后回复
 

与 BitTiger Community 的连接断开,我们正在尝试重连,请耐心等待