所以我有這個數據庫,其中包含一個文件列表。文件可以更新,但以前的版本仍然保留在回滾的情況下。我想知道的是,我將如何添加一個包含該文件以前版本數的臨時列。在mysql中添加一個臨時列,其條目是表中相同條目的計數
本質上,我將如何在mysql中創建一個臨時列,其條目取決於主表中的某些內容?
CREATE TABLE Files(
file_id INTEGER PRIMARY KEY NOT NULL AUTO_INCREMENT,
student_id INTEGER,
group_id INTEGER,
submission_number INTEGER,
submission_type VARCHAR(10),
FOREIGN KEY (student_id) REFERENCES Student (student_id) ON DELETE CASCADE,
FOREIGN KEY (group_id) REFERENCES Groups(group_id)ON DELETE CASCADE
);
提交由它的submission_number和submission_type定義。所以submission_type 0將是一個任務,1將是一個項目,2將是一個測驗等。 submission_number將是我們正在上傳的那種提交類型的分配。例如,第三個測驗的submit_type = 2和submission_number = 3.我們可以更新一個文件,因此我們可以上傳一個具有相同submission_type和submission_number的新文件。我想要返回的是包含每次提交上傳次數的表格。
所以,如果我下面的表格
+---------+------------+----------+-------------------+-----------------+
| file_id | student_id | group_id | submission_number | submission_type |
+---------+------------+----------+-------------------+-----------------+
| 1 | 10049 | 1 | 1 | assignment |
| 2 | 10032 | 1 | 1 | assingment |
| 3 | 10032 | 1 | 2 | quiz |
| 4 | 10032 | 1 | 3 | assingment |
+---------+------------+----------+-------------------+-----------------+
我希望回到表
+-------------------+-----------------+-------+
| submission_number | submission_type | count |
+-------------------+-----------------+-------+
| 1 | assignment | 2 |
| 2 | quiz | 1 |
| 3 | assignment | 1 |
+-------------------+-----------------+-------+
另一種方式去思考它了,如果submission_number和submission_type是不是座標,例如x,然後我想計算同一個點出現在表中的次數。因此,點(1,作業)出現了兩次,因此計數爲2.
你要根據每個提交數計? –
計數取決於上傳具有相同submission_number和submission_type的提交的次數。將submission_number和submission_type看作(x,y)。我們有多少次同樣的觀點出現在這張表中。 –
可以同一提交號碼有兩種不同的提交類型?像在你的表file_id 2可以submission_type不是1?那麼結果應該是什麼? –