【问题标题】:Does memsql really support Ranking Functions?memsql 真的支持排名函数吗?
【发布时间】:2016-03-16 06:54:15
【问题描述】:

http://docs.memsql.com/5.0/concepts/window_functions/

我检查了上面链接的文档,想出了几个可能的 SQL 函数,但没有一个运气。这些只是一些:

select row_number() from test;
select row_number() over (order by _id) from test;
select row_number() over {order by _id} from test;
select row_number() over order by _id from test;
select row_number() over (order by _id) as row_num from test;
select row_number over order by _id as row_num from test;

全部给我 ERROR 1064 (42000):您的 SQL 语法有错误;

MemSQL 版本是 5.5.8

当然select _id from test; 工作正常?

那么使用的确切语法是什么?还是说MemSQL中其实没有这个东西?

【问题讨论】:

  • #2 和 #5 都是有效的 SQL,应该根据链接的文档来支持...

标签: sql window-functions singlestore


【解决方案1】:

您看到的版本字符串是 mysql 兼容版本,我假设您通过执行SELECT version(); 获得。要正确检查您的 MemSQL 版本,请使用SHOW VARIABLES WHERE Variable_name = 'memsql_version';

窗口函数是 MemSQL 5 中的新功能,让我相信您没有运行 MemSQL 5。这并不奇怪,因为 5 仍处于测试阶段(截至 2016 年 3 月 16 日)。您可以获取测试版here

在回答您的问题时,dnoeth 正确地指出查询 #2 和 #5 是有效的。为了尽职调查,我已经针对我本地构建的 MemSQL 运行了这些查询,并且它们都有效。

memsql> create table test(_id int);
Query OK, 0 rows affected (0.01 sec)

memsql> insert into test values (1), (2), (3);
Query OK, 3 rows affected (0.01 sec)
Records: 3  Duplicates: 0  Warnings: 0

memsql> select row_number() over (order by _id) from test;
+----------------------------------+
| row_number() over (order by _id) |
+----------------------------------+
|                                1 |
|                                2 |
|                                3 |
+----------------------------------+
3 rows in set (0.00 sec)

memsql> select row_number() over (order by _id) as row_num from test;
+---------+
| row_num |
+---------+
|       1 |
|       2 |
|       3 |
+---------+
3 rows in set (0.01 sec)

memsql> SHOW VARIABLES WHERE Variable_name = 'memsql_version';
+----------------+-------+
| Variable_name  | Value |
+----------------+-------+
| memsql_version | 5.0   |
+----------------+-------+
1 row in set (0.00 sec)

【讨论】:

  • 是的,我的 memsql 版本原来是 4.1.2。
猜你喜欢
  • 2018-07-14
  • 2011-11-28
  • 2012-09-26
  • 1970-01-01
  • 2014-01-03
  • 2012-08-11
  • 2017-10-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多