网站开发工具 比较,wordpress+标签消失,免费百度下载,重庆市施工安全管理网按照 sql_finger_md5 分组取query_time_ms 最大的一行数据。 使用any函数可以去匹配到的第一行数据#xff0c;所以可以先让数据按照query_time_ms 排序#xff0c;然后再使用group by 和any结合取第一行数据#xff0c;就是最大值的那一行数据。
selectany (time) as time…按照 sql_finger_md5 分组取query_time_ms 最大的一行数据。 使用any函数可以去匹配到的第一行数据所以可以先让数据按照query_time_ms 排序然后再使用group by 和any结合取第一行数据就是最大值的那一行数据。
selectany (time) as time ,any (query_time_ms) as query_time_ms ,any (sqltext) as sqltext,any (inst_id) as inst_id,any (inst_name) as inst_name,any (dbname) as dbname,any (host_address) as host_address,any (lock_times) as lock_times,any (parse_row_counts) as parse_row_counts,any (return_row_counts) as return_row_counts,any (sql_finger) as sql_finger,sql_finger_md5,any (sqltext_md5) as sqltext_md5
FROM(SELECTinst_id,inst_name,dbname,execution_start_time as time,host_address,query_time_ms,sqltext,lock_times,parse_row_counts,return_row_counts,sql_finger,sql_finger_md5,sqltext_md5FROMcmdb.rds_all_slow_sql_record_distributedWHERE(execution_start_time toDateTime(1711079437) AND execution_start_time toDateTime(1711684237) )AND (dbname leopard_admin)AND host_address not like %root% AND host_address not like %bi_user% AND sqltext not like %insert%order by sql_finger_md5 desc,query_time_ms desc) a
group bya.sql_finger_md5
order by query_time_ms desc
limit1000窗体函数在数据量大的时候性能堪忧在clickhouse中还有其他的处理方式。比如使用any()、anyLast()函数。
按官方文档的定义any() “selects the first encountered value.”也就是返回遇到的首个值看上去是很符合当前的情况。但文档又做了说明因为查询可能是以任意顺序执行的并且可能每次执行得顺序都不同如同我们上面的select * from user_order返回的行顺序不同所以这个函数的执行结果可能是不确定的。如果要获得确定的值可以使用“min”或者“max”。或者select的对象的是一个已经排序过的子查询。
参考资料 http://www.tracefact.net/tech/112.html