假设我有一所学校,有许多不同年级的学生。 我有一张桌子,上面有所有学生的姓名,年级和分数,以免考试。
表school
如下所示:
| Name | Grade | mark |
| David | 5 | 100 |
| John | 3 | 90 |
| Anne | 5 | 90 |
| Ivan | 7 | 100 |
| Benjamin | 7 | 90 |
| Diane | 3 | 90 |
| Chris | 2 | 100 |
我想要一个不同的表total
,该表将具有计算的字段,其中包含每个年级和每个分数的计数。
表total
如下所示:
total table
| Grade | 90 | 100 |
| 2 | 0 | 1 |
| 3 | 2 | 0 |
| 5 | 0 | 1 |
| 7 | 1 | 1 |
因此,我对每个年级都有准确的总分(我知道可以在视图中建立分数,但是出于某种原因,我需要在单独的表格中得分)。
我要寻找的是一个触发器,如果更新分数,它将更新该年级的总表。
例如,如果我将John从3年级更新为100,则应该更新总表,如下所示:
UPDATE `total`
SET `90` = (SELECT COUNT(*) FROM `school` WHERE `mark` = '90' AND `grade` = '3'),
`100` = (SELECT COUNT(*) FROM `school` WHERE `mark` = '100' AND `grade` = '3');
我找不到确切的语法: