我有以下表格:访视:vid、pid、日期患者:pid、pname、年龄、性别所以我想知道每个病人的平均就诊次数。我已经很努力地想解决这个问题了,但是仍然不能解决!希望有人能帮助我。
vwkv1x7d1#
您可以通过计算访视总数并除以患者总数来完成此操作。
select (select count(*) from visits) / (select 1.0*count(*) from patients) as AvgVisitsPerPatient
请注意以下事项:
1.0*
patients
select
编辑:您没有足够的信息来计算给定时间单位的平均值。虽然您有就诊日期,但没有患者的日期,因此您不知道在任何给定时间点的总体情况。
jchrr9hc2#
无法计算每位患者的平均就诊次数。任何单个患者的总就诊次数只有一个标量值。您无法计算其平均值。您可以计算所有患者的平均就诊次数,或每位患者每月的平均就诊次数,但如果一组值中只有一个值,则无法计算该组值的平均值。(或者,为了技术上的准确性,您可以对单个值求平均值,但平均值与值相同,因为计数为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
2条答案
按热度按时间vwkv1x7d1#
您可以通过计算访视总数并除以患者总数来完成此操作。
请注意以下事项:
1.0*
才能将计数更改为小数。SQL Server对整数执行整数除法。patients
表的使用。某些患者可能没有任何访视,但将其包括在内。select
中使用嵌套子查询。这是允许的。编辑:
您没有足够的信息来计算给定时间单位的平均值。虽然您有就诊日期,但没有患者的日期,因此您不知道在任何给定时间点的总体情况。
jchrr9hc2#
无法计算每位患者的平均就诊次数。任何单个患者的总就诊次数只有一个标量值。您无法计算其平均值。您可以计算所有患者的平均就诊次数,或每位患者每月的平均就诊次数,但如果一组值中只有一个值,则无法计算该组值的平均值。(或者,为了技术上的准确性,您可以对单个值求平均值,但平均值与值相同,因为计数为1。)
所有患者的平均访视次数=访视总数/患者数量
每例患者每月的平均访视次数