mysql——错误1064(42000):。。。。近';(按t1.DIGEST划分)

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

我尝试在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, 
               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,所以对
分区
不够熟悉,无法提供解决方案。抱歉,在不知道结果应该是什么的情况下,很难提出替代方案。而通常模拟配分函数的方法是一个变量,在你们的例子中,看起来你们可以这样做