繁体   English   中英

我如何多次内部加入和分组?

[英]How do I inner join and group by multiple times?

我正在编写一个查询,该查询应返回一份报告,其中包含在该设施工作的公共卫生工作者总数、人们在该设施中接受的剂量总数以及人们计划在该设施中接种的总剂量在将来。 我将任务划分为三个 SQL 代码:

-- 1 名在该设施工作的公共卫生工作者

SELECT `name`,  address, phone, type, phone, capacity, COUNT(person_id) AS totalWorkers
FROM healthcare_worker
INNER JOIN facility ON facility.`name`= healthcare_worker.facility_name
GROUP BY healthcare_worker.facility_name

-- 2 人们在设施中接受的剂量总数

SELECT `name`,  address, phone, type, phone, capacity, SUM(dose) AS totalDose
FROM vaccination
INNER JOIN facility ON facility.`name`= vaccination.location
GROUP BY vaccination.location

-- 3 未来计划在设施中接种的人员的总剂量

SELECT `name`,  address, phone, type, phone, capacity, COUNT(booking_id) AS totalBookings 
FROM booking
INNER JOIN facility ON facility.`name`= booking.facility_name
GROUP BY booking.facility_name

我可以将它们放在一个查询中吗?

您可以使用相关的子查询

SELECT `name`, address, phone, type, phone, capacity
, ( SELECT COUNT(person_id)
    FROM healthcare_worker
    WHERE fac.`name`= healthcare_worker.facility_name
  ) AS totalWorkers
, ( SELECT SUM(dose)
    FROM vaccination
    WHERE fac.`name`= vaccination.location
  ) AS totalDose
, ( SELECT COUNT(booking_id) 
    FROM booking
    WHERE fac.`name`= booking.facility_name
  ) AS totalBookings
FROM facility AS fac

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM