天天看点

mysql group by 按组返回 top 10 信息

需求:

对 mysql 输出进行 groug by 排序并执行 top 10 返回

前提:

当前需对 zabbix 执行自定义监控数据返回.

涉及到的表比较多,  下面作出简单的说明

hosts_groups 用于记录主机与组的 id 关系

groups 表用于记录主机组信息

hosts 表用于记录主机信息

item 用于记录监控项

history 与 history_uint 表结构一样, 都是用于记录 items 的记录, 但 history_unit 记录的是通过 discovery 方式发现的 items. (具体信息参考

如果觉得复杂, 可以直接创建下面的表进行测试.

看下面的方法, (以真实数据进行测试咯) 所以返回值与上述表不一样

1. 获取一行的 top 数据

2. 把其他列的数据也添加上去

3. 要创建 group by 方式的 top 10 , 需要创建一个临时表.

4.  最终结果, 按照 group by 输出 top 10 信息



继续阅读