Mysql 错误代码:1235。这个版本的MariaDB没有';还不支持';将(不同的)聚合计数为窗口函数';
我在MariaDB上有下表:Mysql 错误代码:1235。这个版本的MariaDB没有';还不支持';将(不同的)聚合计数为窗口函数';,mysql,sql,mariadb,window-functions,Mysql,Sql,Mariadb,Window Functions,我在MariaDB上有下表: date name 2018-01-02 John 2018-01-03 Mary 2018-01-05 Peter 2018-01-06 John 2018-01-07 Ann 2018-01-08 Ann 2018-01-09 John 2018-01-10 Peter 我想计算每天的累计姓名数。i、 e.我期望我的结果如
date name
2018-01-02 John
2018-01-03 Mary
2018-01-05 Peter
2018-01-06 John
2018-01-07 Ann
2018-01-08 Ann
2018-01-09 John
2018-01-10 Peter
我想计算每天的累计姓名数。i、 e.我期望我的结果如下:
date cumulated_name_count
2018-01-02 1
2018-01-03 2
2018-01-04 2
2018-01-05 3
2018-01-06 3
2018-01-07 4
2018-01-08 4
2018-01-09 4
2018-01-10 4
为了实现这一点,我使用以下带有窗口功能的代码:
select date,
count(distinct name) over (order by time rows unbounded preceding)
as cumulated_name_count from myDB.myTable
但是,我得到了以下错误:
Error Code: 1235. This version of MariaDB doesn't yet support 'COUNT(DISTINCT) aggregate as window function'
有没有办法避免这种错误并获得窗口函数的累积计数?谢谢 可以使用嵌套窗口函数执行此操作:
select date,
sum( seqnum = 1 ) over (order by time rows unbounded preceding)
as cumulated_name_count
from (select t.*,
row_number() over (partition by name order by time)
as seqnum
from myDB.myTable t
) t2;
子查询按时间枚举每个
名称值。外部查询然后计算每条记录的“1”数。Hi,我得到了这个错误:错误代码:4017。不允许使用“行号”的窗框。。。这是由于MariaDB版本引起的问题吗?我怎么能绕过它呢?谢谢(按名称划分顺序按时间划分)中是否实际需要“行无边界的前一行”?@Edamame。这是不必要的。当我复制代码时,我只是把它留在了里面。还需要一个右键连接到日期列表中,否则2018-01-04
将不会显示在输出中。