Mysql如何按组查找累计总数



谁能帮我整理一下这个?我有一个集表,对于一个集,会有以下的预约。集表将像

+-------------+------------+------------+------------+----------------+------+
| Episode_id  |  Patientid |  St_date   |  End_date  |      Status    | ...  |
+-------------+------------+------------+------------+----------------+------+
| 61112345    | 100001     | 12-01-2010 |            | Active         |      |
| 61112346    | xxxxxx     | 20-01-2010 | 10-10-2011 | Withdrawn      |      |
| .........   | xxxxxxxx   | 30-01-2010 | 10-05-2011 | Lost to follow |      |
| .........   | xxxxxxxx   | 01-02-2011 | Active     | Active         |      |
+-------------+------------+------------+------------+----------------+------+

Status字段保存每个集的状态。一集有6次预约,每次预约3个月。所以一集总共有18个月。有的患者可能完成全部6次预约,有的患者可能中途退出,有的患者可能失去随访机会。我需要创建一个仪表板。

约会表将有

的字段
Appointment_id
PatientId
...
Stats  // Completed or pending, which is used for reporting 

例如,如果患者完成了2次预约,如果他在发作时被标记为退出,这意味着他已经退出了第三次就诊,并且活跃了2次就诊,如果我们在第5次应用程序上没有跟踪他,那么他将在第4次应用程序上活跃,然后他将被添加到丢失中,以便在第5次就诊时进行随访。如果他完成了所有,那么他将被添加到所有6次访问的活动中。报告应该像

Report from 01-01-2010 to 31-12-2010
+--------+--------+-------------+----------------+---------+
|        | Active |  Withdrawn  | Lost to follow | Revised |
+------- +--------+-------------+----------------+---------+
| visit1 | 1500   | 30          | 5              | 5       |
| Visit2 | 1800   | 20          | 4              | 3       |
| Visit3 | 1900   | 45          | 3              | 2       |
| Visit4 | 1800   | 34          | 0              | 1       |
| Visit5 | 1900   | 30          | 0              | 1       |
| Visit6 | 1200   | 20          | 0              | 5       |
+--------+--------+-------------+----------------+---------+

目前,我们正在获取查询和使用循环,只有我们生成这样的报告,但它需要时间来处理,有任何方法我可以实现使用查询本身。

您想按什么分组并不清楚,但我可以给您一个大概的答案。在where子句之后,您可以添加"group by fieldname order by fieldname",其中fieldname是您想要计数或求和的元素。然后,您可以count(fieldname)或sum(fieldname)来添加或计数。

这可能会有帮助:http://www.artfulsoftware.com/infotree/qrytip.php?id=105

相关内容

  • 没有找到相关文章

最新更新