可以根据列或别名列对结果进行排序,升序ASC,降序DSC,使用LIMIT限制输出结果数量。
例如:查询LLDP neighbor中的信息,按照接口名字排序,输出前十个.
SELECT * FROM lldptable ORDER BY localintf ASC LIMIT 10;
也可以指定列的位置,根据第几列排序,而不是写出列的名称‘localintf’
SELECT * FROM lldptable ORDER BY 5 ASC LIMIT 10;
对结果分组(聚合函数)
可以在列上使用GROUP BY 对结果进行分组,然后使用AGGREGATE(聚合)函数,COUNT/MAX/MIN/AVERAGE等
举例,找出lldp中capbility不同类型的设备数量
SELECT capbility, COUNT(*) AS count FROM lldptable GROUP BY capbility;
查找最多的设备类型,返回前5种
SELECT deviceid, COUNT(*) AS count FROM lldptable GROUP BY deviceid ORDER BY count DESC LIMIT 5;
SUM 计算列和值:没想到合适的案例练习,先粘过来吧
瞎写一个例子计算holdtime的和吧,按照不同的设备名称
SELECT deviceid, SUM(holdtime) AS sumholdtime FROM lldptable GROUP BY deviceid HAVING sumholdtime >1200 ORDER BY sumholdtime DESC LIMIT 20;
AVERAGE 计算平均值,同样。
SELECT deviceid, AVG(holdtime) AS avgholdtime FROM lldptable GROUP BY deviceid ORDER BY avgholdtime DESC LIMIT 20;
DISTINCT: 过滤出表中的不同条目
使用HAVING过滤:
通过having过滤 group by的结果,接上面示例,找到sum 时间大于1200的。