使用连接查询,聚合函数,连接查询的分组统计
示例1
统计每家公司所属线路的站点总数
SELECT
l.company 公司名,
count(*) 站点总数
FROM
line l,
line_station ls
WHERE
l.lineNO = ls.lineNo
GROUP BY
公司名;
如上代码就是使用了链接查询了两张表再根据 l.compang 分组进行统计可以看出代码简洁有效
示例2
计算经过站点“解放大道古田四路”的公交线路的数量以及运营车辆数
SELECT
count(*) 线路数量,
sum( number ) 运营车辆数
FROM
line l,
line_station ls
WHERE
l.lineNo = ls.lineNo
AND station = '解放大道古田四路';
这张是连接查询与聚合函数的综合运用
示例3
计算每条公交线路的司机人数,并显示司机人数大于三的分组信息,按司机人数降序显示
SELECT
l.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
司机人数 desc;
这个示例则是运用的比较全面分别使用了链接查询,聚合函数以及分组查询
示例4
计算每个订单的金额,要求按照订单下单日期升序和订单金额降序显示订单ID、订单下单日期、订单金额和顾客姓名
SELECT
od.ordersID 订单ID,
c.cName 顾客姓名,
o.ordersDate 下单日期,
sum( od.quantity * g.unitPRice ) 订单金额
FROM
ordersdetail od,
orders o,
goods g,
customer c
WHERE
od.ordersID = o.ordersID
AND od.goodsID = g.goodsID
AND o.customerID = c.customerID
GROUP BY
订单ID
ORDER BY
订单ID,下单日期,订单金额;
这示例关联表多所以要使用多表链接查询并使用聚合函数进行连接
总结:链接查询的综合运用不仅可以实现各种复杂的查询需求,还能使代码更加简洁方便明了,方便查询数据