mysql——错误1064(42000):。。。。近';(按t1.DIGEST划分)
我尝试在ubuntu/mysql中执行此查询:mysql——错误1064(42000):。。。。近';(按t1.DIGEST划分),mysql,ubuntu,Mysql,Ubuntu,我尝试在ubuntu/mysql中执行此查询: SELECT t1.SCHEMA_NAME, CONCAT(ROUND(BUCKET_QUANTILE*100,2),"% under ", BUCKET_TIMER_HIGH/1000000000," milliseconds") fact, LEFT(QUERY_SAMPLE_TEXT,64) as QUERY_SAMPLE, t1.DIGEST, C
SELECT t1.SCHEMA_NAME, CONCAT(ROUND(BUCKET_QUANTILE*100,2),"% under ",
BUCKET_TIMER_HIGH/1000000000," milliseconds") fact,
LEFT(QUERY_SAMPLE_TEXT,64) as QUERY_SAMPLE, t1.DIGEST,
COUNT(t1.DIGEST)
OVER(PARTITION BY t1.DIGEST) as TOT
FROM events_statements_histogram_by_digest t1
JOIN events_statements_summary_by_digest t2
ON t2.DIGEST = t1.DIGEST
WHERE COUNT_BUCKET >1
ORDER BY t1.DIGEST, BUCKET_TIMER_HIGH DESC
LIMIT 10\G
结果是:
ERROR 1064 (42000): You have an error in your SQL syntax;
check the manual that corresponds to your MySQL server version
for the right syntax to use near
'(PARTITION BY t1.DIGEST) as TOT FROM events_statements_histogram_by_digest t1 JO'
at line 1
我还没有找到纠正这个问题的方法。请帮忙。谢谢。除非您使用的是MySQL 8,否则它不支持(分区依据…@Nick--“分区依据”是什么在mysql5+?mysql5.x中没有真正的等价物。你可能可以用
GROUP BY
来模拟它。我才刚开始使用MySQL8,所以对分区
不够熟悉,无法提供解决方案。抱歉,在不知道结果应该是什么的情况下,很难提出替代方案。而通常模拟配分函数的方法是一个变量,在你们的例子中,看起来你们可以这样做