MySQL连接查询综合应用
前言
综合使用连接查询,聚合函数和分组函数进行复杂的查询
提示:中等难度
一、分组统计
1.统计每一家公司所属线路的站点总数
代码如下(示例):
SELECT company 公司,COUNT(*)站点数
FROM line_station LS,line L
WHERE LS.lineNo=L.lineNo
GROUP BY company
ORDER BY COUNT(*);
运行结果如下
2.计算经过站点‘’解放大道古田四路‘的公交路线的数量以及营运车辆数量
代码如下(示例):
SELECT COUNT(*)线路数,SUM(number)运营车辆
FROM line_station LS,line L
WHERE LS.lineNo=L.lineNo AND station='解放大道古田四路'
运行结果如下
3.计算每条公交线路的司机人数,按司机人数降序显示
代码如下(示例):
SELECT lineNo 线路号,COUNT(*)司机数
FROM driver D ,vehicle V,line L
WHERE D.driverID=V.driverID AND V.lineID=L.lineID
GROUP BY lineNo
ORDER BY 司机数 DESC
运行结果如下
4.计算每条公交线路司机人数,并显示司机人数大于三的分组信息,按司机人数逆序显示
代码如下(示例):
SELECT lineNO 线路号,count(*)司机数
FROM driver D, vehicle V,line L
WHERE D.driverID = V.driverID AND V.lineID = L.lineID
GROUP BY lineNO
HAVING count(*)> 3
ORDER BY count(*) DESC
运行结果如下
5.统计每件商品的销售量和销售金额,要求按照销售量和销售金额升序显示商品名,销售量和销售金额
代码如下(示例):
SELECT g.goodsName 商品名, sum( od.quantity ) 销售量,
sum( od.quantity * g.unitPrice ) 销售金额
FROM goods g LEFT JOIN ordersdetail od ON g.goodsID = od.goodsID
GROUP BY g.goodsID
ORDER BY 销售金额,销售
运行结果如下
6.计算每个订单金额,按照订单下单日期升序和订单金额降序显示订单ID,订单下单日期,订单金额和顾客姓名
代码如下(示例):
SELECT o.ordersID 订单ID,o.ordersDate 下单日期,
sum( od.quantity* g.unitPrice )订单金额,c.cName 顾客姓名
FROM orders o,ordersdetail od,goods g,customer c
WHERE o.ordersID = od.ordersID AND od.goodsID = g.goodsID AND o.customerID = c.customerID
GROUP BY o.ordersID
ORDER BY 订单金额 DESC
运行结果如下
总结
在写的过程中会出现很多问题只要细心就能做好,不要出现错误就放弃要多多检查,细心对待,认真听讲
居中的图片: