将mysql结果汇总到指定的组中

时间:2016-10-10 11:59:00

标签: mysql

    SELECT 
    f.hmis, sa.number_of_computers, sa.service_area
FROM
    facility_service_area sa,
    facility f
WHERE
    f.hmis = sa.facility_hmis


hmis   comp serv_area
80703   3   MCH
80706   1   LD
80701   2   ART
80701   3   ART
80701   2   LD
80701   3   LD
80701   2   MCH
80701   1   MCH
80702   4   MCH
80707   1   MCH
80707   4   MCH

我想总结每个hmis下每个指定服务区域内的所有计算机,结果如下所示。

hmis   comp. Service_area
80703   3   MCH
80706   1   LD
80701   5   ART
80701   5   LD
80701   3   MCH
80702   4   MCH
80707   4   MCH

2 个答案:

答案 0 :(得分:1)

{{1}}

答案 1 :(得分:1)

首先。 从不FROM子句中使用逗号。 始终使用正确的JOIN语法。

您只想要一个GROUP BY

SELECT f.hmis, sa.service_area, SUM(sa.number_of_computers)
FROM facility_service_area sa JOIN
    facility f
    ON f.hmis = sa.facility_hmis
GROUP BY f.hmis, sa.service_area;

在聚合查询中,我几乎总是先将聚合列放在计算列之后。这有助于防止错误,因为很容易检查用于聚合的列是否与返回的列匹配。