对Orders订单表中的常见统计查询

对Orders订单表中的常见统计查询:
该表包含的的信息: 订单编号,顾客编号,备注等

1 查询Order表中的所有订单的总数
  SELECT COUNT(*) 
  FROM Orders

返回结果可能是:

  --------
  15
问题: 可读性太差
思路: 添加说明
方法: 给查询结果添加一个列名
代码:
       SELECT COUNT(*) AS order_sum
       FROM Orders

返回结果如下:
order_sum
----------
15


2 查询Order表中的顾客100001的所有的订单的总数
  SELECT COUNT(*)
  FROM Orders
  WHERE cust_id = '100001'
结果:
    --------
    2
问题:可读性差
思路:给查询结果添加注明,既注明查询结果,又注明顾客
方法:给结果添加顾客编号列和结果说明列(AS xxx_xx)
代码:
      SELECT cust_id,COUNT(*) AS order_sum
      FROM Orders
      WHERE cust_id = '100001' 
返回结果:
cust_id  order_sum
-------- ----------
100001   2
    

3 查询Order表中顾客100003的所有订单的总数
  SELECT COUNT(*)
  FROM Orders
  WHERE cust_id = '100003'
  结果:同上
  问题:同上
  思路:同上
  方法:同上
  代码:同上
  


4查询Orders表中100001和100002的所有订单总数
  SELECT COUNT(*)
  FROM Orders
  WHERE cust_id IN('100001','100002')
  结果:
    -------
    2
    3
  问题:同上
  思路:给所有结果添加说明列,给每个结果添加顾客说明列
  方法:AS xxx;cust_id
  代码:
      SELECT cust_id,COUNT(*) AS order_sum
      FROM Orders
      WHERE cust_id IN('100001','100002')
  结果:
     cust_id   order_sum
     -------   ----------
     100001    2
     100002    3


5 查询Order表中顾客表中每一位顾客的所有订单总数
  SELECT COUNT(*)
  FROM Orders
  WHERE Order.cust_id = Customers.cust_id
  结果:
    -----
    2
    3
  问题:同上
  思路:给所有结果添加说明列 给每个结果添加顾客信息列
  方法:给查询结果来个AS xxx
     然后再另一张Customer表中查询顾客信息列
  代码:
     SELECT cust_id,cust_name,cust_sex
     (SELECT COUNT(*)
      FROM Orders
      WHERE Order.cust_id = Customers.cust_id) AS order_sum
     FROM Customers
  结果
     cust_id  cust_name  cust_sex   order_sum
     -------  ---------  ---------  ----------
     100001   lucy       female          2
     100002   nancy      female          3


任何复杂的问题
如果你能够将其
分解成简单的问题
并且能理清楚
问题由简单变复杂的过程
再复杂也能轻松理解和解决
简单的问题做加法
问题将会变复杂
复杂的问题做减法
问题就会变简单
把复杂当做简单
之后
意味着
越来越强大

你可能感兴趣的:(sql)