我有一组数据,如下所示:
id name c1 c2 c3 c4 ... c50
-----------------------------------------------
1 string1 0.1 0.32 0.54 -1.2 ... 2.3
2 string2 0.12 0.12 -0.34 2.45 ... 1.3
...
(millions of records)
Run Code Online (Sandbox Code Playgroud)
所以我有一个id列,一个字符串列,然后是50个浮点列.
在此数据上只运行一种类型的查询,在传统的SQL SELECT语句中如下所示:
SELECT name FROM table WHERE ((a1-c1)+(a2-c2)+(a3-c3)+...+(a50-c50)) > 1;在a1,a2,a3,etc发送查询之前生成的值(不包含在数据表中)的位置.
我的问题是:有没有人对什么类型的数据库最快处理这种类型的查询有任何建议. 我用过SQL server(主要是慢),所以我正在寻找其他意见.
是否有办法为这种类型的查询优化SQL服务器?我也对列存储数据库感到好奇,例如MonetDB.或者也许是文档存储数据库,例如MongoDB.有没有人有什么建议?
非常感谢,布雷特
我需要在MonetDB中做这样的事情:
select
If(value > 0, value, -1) as selected_value
from
table
Run Code Online (Sandbox Code Playgroud)
在mysql中,这意味着'如果值> 0则返回值,否则返回-1.' 在MonetDB中是否有与此相同的功能?
我不是在寻找案例陈述.我知道它存在于MonetDB和其他sql语言中.我想特别知道我给出的例子.
谢谢
我想在Centos 6.5上安装MonetDB.
MonetDB网站描述了如何安装Debian/Ubuntu/Fedora发行版.
我在Centos 6.5上有一台服务器(而且我不完全确定这应该与哪个Fedora发行版进行比较).
显然我想安装最新的MonetDB二进制文件:我宁愿避免从源代码安装(除非绝对必要).
我该怎么做?
我在标准偏差函数方面遇到了一些问题(具体来说是MonetDB中的stddev_samp).我尝试了以下查询但没有成功:
select industry, avg(marketcap) as industryavg, stddev_samp(marketcap) as industrysd from cumulativeview group by industry
select stddev_samp(marketcap) as industrysd from cumulativeview group by industry
Run Code Online (Sandbox Code Playgroud)
每个都给了我一个非常奇怪的例外,似乎stddev函数不能按子集对组进行操作,但是单独使用avg函数似乎在子集上工作得很好,如下面的查询:
select industry, avg(marketcap) as industryavg from cumulativeview group by industry
Run Code Online (Sandbox Code Playgroud)
当我使用where子句而不是group by时,标准偏差函数工作得很好:
select stddev_samp(marketcap) as industrysd from cumulativeview where industry='Diversified Investments'
Run Code Online (Sandbox Code Playgroud)
是否有另一种方法来编写一个查询,它可以同时为每个行业提供平均值和标准差,而不必为每个行业编写单独的查询?我很困惑为什么普通函数与group by和stddev不兼容...
我需要将一个大的CSV文件导入到MonetDB中,我想知道是否可以将文件拆分为两个并运行两个脚本,如:
mclient -u monetdb -d mydb < import1.sql
mclient -u monetdb -d mydb < import2.sql
Run Code Online (Sandbox Code Playgroud)
哪里
copy使用file1.csv 发出SQL 指令copy使用file2.csv 发出SQL 指令这会更快吗?这样做好吗?
谢谢
我想访问 monetdb 数据库而无需密码验证。我需要它来将代码放入 bash 脚本中并自动执行一些查询。
命令
mclient -u monetdb -d database
Run Code Online (Sandbox Code Playgroud)
要求输入密码,我想省略该密码(默认密码是“monetdb”)。执行此命令后,我想输入数据库。
如果不可行,也许有机会传递密码(即使在代码中使用直接可见的文本)。
如何导出monetdb查询结果(例如到csv文件)?
手册说:
复制到文件
带有文件名参数的COPY INTO命令允许将结果集快速转储到ASCII文件中.该文件必须可由服务器访问,并且可能需要完整路径名.文件STDOUT可用于将结果定向到主输出通道.
分隔符和NULL AS参数提供对所需布局的控制.
COPY子查询INTO file_name [[USING] DELIMITERS field_separator [','record_separator [','string_quote]]] [NULL AS null_string]
https://www.monetdb.org/Documentation/Manuals/SQLreference/CopyInto
我正在尝试各种语法,但没有结果.
示例查询:
select * from test;
Run Code Online (Sandbox Code Playgroud)
示例失败:
copy select * from test into test.csv;
copy "select * from test" into test.csv;
Run Code Online (Sandbox Code Playgroud) 有没有办法在不安装R包的情况下将MonetDBLite用作C++应用程序中的存储引擎?或者有没有其他方法可以将MonetDB用作SQLite等嵌入式数据库?
Monetdb是否支持像concat_wsPostgresql(http://www.postgresql.org/docs/9.1/static/functions-string.html)中的字符串函数?
编辑:Monetdb参考
我查看关于支持的操作的Monetdb参考,但没有任何与String函数相关的内容.
monetdb ×9
sql ×5
bash ×1
c++ ×1
centos ×1
database ×1
function ×1
group-by ×1
monetdblite ×1
mongodb ×1
postgresql ×1
qt ×1
sql-server ×1