Mysql如何按组查找累计总数

Mysql如何按组查找累计总数,mysql,cumulative-sum,Mysql,Cumulative Sum,有谁能帮我解决这个问题吗。我有一个节目表,每一集都有以下预约。节目表将是这样的 +-------------+------------+------------+------------+----------------+------+ | Episode_id | Patientid | St_date | End_date | Status | ... | +-------------+------------+------------+-----------

有谁能帮我解决这个问题吗。我有一个节目表,每一集都有以下预约。节目表将是这样的

+-------------+------------+------------+------------+----------------+------+
| 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         |      |
+-------------+------------+------------+------------+----------------+------+
状态字段保存每集的状态。每集有6次约会,每次约会3个月。所以一集总共有18个月。有些病人可以完成所有6个预约,有的可能在中间退出,有的会丢失跟进。我需要创建一个仪表板

约会表将包含约会的字段

Appointment_id
PatientId
...
Stats  // Completed or pending, which is used for reporting 
例如,如果一名患者完成了2次预约,如果他在Epidode上被标记为退出,这意味着他已退出第3次就诊,并在2次就诊中处于活动状态,如果我们未能在第5次就诊时跟踪他,那么他将在第4次就诊时处于活动状态,然后他将在第5次就诊时被添加到lost中进行随访。如果他完成了所有访问,那么他将为所有6次访问添加到active。报告应该是这样的

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是要计数或求和的元素。然后,您可以计数(fieldname)或求和(fieldname)来相加或计数


这可能会有帮助:

是的,但它们必须按情节状态分组,请再次阅读。这需要大量工作感谢您的时间,我知道hw需要进行小组工作,但我的场景需要大量工作