MySQL:按类别统计项目
我创建了一个表,该表根据类别保存项目:MySQL:按类别统计项目,mysql,sql,timestamp,counter,minimum,Mysql,Sql,Timestamp,Counter,Minimum,我创建了一个表,该表根据类别保存项目: +------------+---------------------+------+-----+-------------------+----------------+ | Field | Type | Null | Key | Default | Extra | +------------+---------------------+------+-----+-------
+------------+---------------------+------+-----+-------------------+----------------+
| 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 | |
+------------+---------------------+------+-----+-------------------+----------------+
使用a删除旧数据,这意味着表中只保留每个类别中最后的N
项
如何跟踪每个类别的项目总数以及类别中第一个项目的时间戳
Edit-
COUNT
和MIN
在原始表上不起作用,因为这是一个滑动窗口数据结构,意味着第一个项目已经被删除 尝试使用按类别从表组中选择计数(id)
显然,删除记录时需要保留一个单独的表。您的表格应汇总类别并包括以下字段:
- 类别首次开始时间
- 类别中的项目总数
当您转到“删除”时,需要更新此表。通常,我更喜欢使用存储过程来处理数据库维护,因此可以将此代码添加到存储过程中。其他人更喜欢触发器,因此您可以使用一个执行相同操作的删除触发器。不起作用-请注意,这是一个滑动窗口,因此会删除最旧的项目。您不能创建一个包含计数器和第一个数据的表吗?我可以。我正在努力处理填充另一个表的存储过程。+1没错。你能概述一下这种程序吗?我不熟悉存储过程语法。