0

我创建了一个根据类别保存项目的表:

+------------+---------------------+------+-----+-------------------+----------------+
| Field      | Type                | Null | Key | Default           | Extra          |
+------------+---------------------+------+-----+-------------------+----------------+
| id         | bigint(20) unsigned | NO   | PRI | NULL              | auto_increment |
| name       | varchar(30)         | YES  |     | NULL              |                |
| category   | varchar(30)         | YES  | MUL | NULL              |                |
| timestamp  | timestamp           | NO   |     | CURRENT_TIMESTAMP |                |
| data       | mediumblob          | YES  |     | NULL              |                |
+------------+---------------------+------+-----+-------------------+----------------+

使用滑动窗口技术删除旧数据,这意味着只有N每个类别中的最后一项保留在表中。

如何跟踪每个类别的项目总数以及该类别中第一个项目的时间戳?

编辑-在原始表COUNTMIN不起作用,因为这是一个滑动窗口数据结构,这意味着第一个项目已经被删除。

4

2 回答 2

2

显然,当您删除记录时,您需要保留一个单独的表。您的表格应总结类别并包括以下字段:

  • 类别首次开始时间
  • 类别中的项目总数

等等。

当你去删除时,你需要更新这个表。一般来说,我更喜欢使用存储过程来处理数据库维护,因此可以将这段代码添加到存储过程中。其他人更喜欢触发器,因此您可以拥有一个执行相同操作的删除触发器。

于 2012-08-13T13:17:19.080 回答
0

尝试SELECT count(id) FROM table GROUP BY category

于 2012-08-13T13:01:48.997 回答