我有以下表格:
VISITS: VID, PID, 日期
PATIENT: PID, PNAME, 年龄, 性别
所以我想知道每位患者的平均就诊次数。 我试图如此努力地解决它,但仍然无法完成它! 希望有人可以帮助我。
答案 0 :(得分:1)
每位患者的平均就诊次数是不可能的。对于任何单个患者,总访问次数只有一个标量值。你无法平均。您可以平均所有患者的就诊次数或每位患者每月的就诊次数,但如果该组中只有一个值,则无法平均一组值。 (或者在技术上准确,您可以平均单个值,但平均值与该值相同,因为计数为1。)
所有患者的平均就诊次数= 访问总数/患者人数
Select Avg(Count(*))
From Visits
Group By pid
每位患者每月平均就诊次数
Select p.pid, p.pname,
Avg(z.monthVisits) AvgMonthlyVisits
From (Select Pid, Count(*) monthVisits
From table
Group By Pid, Month(date)) z
join Patient p
on p.pid = z.pid
Group By p.pid
答案 1 :(得分:0)
您可以通过计算总就诊次数并除以患者总数来实现此目的。
select (select count(*) from visits) / (select 1.0*count(*) from patients) as AvgVisitsPerPatient
请注意以下事项:
1.0*
才能将计数更改为小数。 SQL Server对整数进行整数除法。patients
表。有些患者可能没有任何就诊,并且包括在内。select
中使用嵌套子查询。这是允许的。编辑:
您没有足够的信息来计算给定时间单位的平均值。虽然您有访问日期,但您没有患者的日期,因此您不知道在任何给定时间点人口是谁。