通过表达式查询数据示例
以下示例使用了包含两个整数列 a
和 b
的表:
=> CREATE TABLE values (a INT, b INT);
您可以创建含表达式的投影,利用表达式将列 c
的值计算为 a
和 b
的乘积:
=> CREATE PROJECTION values_product (a, b, c)
AS SELECT a, b, a*b FROM values SEGMENTED BY HASH(a) ALL NODES KSAFE;
=> COPY values FROM STDIN DELIMITER ',' DIRECT;
Enter data to be copied followed by a newline.
End with a backslash and a period on a line by itself.
>> 3,11
>> 3,55
>> 8,9
>> 8,23
>> 16,41
>> 22,111
>> \.
=>
要查询此投影,请使用 Vertica 分配给此投影或其伙伴实例投影的名称。例如,以下查询针对之前定义的投影的不同实例,并且返回相同的结果:
=> SELECT * FROM values_product_b0;
=> SELECT * FROM values_product_b1;
以下示例查询了锚表:
=> SELECT * FROM values;
a | b
----+-----
3 | 11
3 | 55
8 | 9
8 | 23
16 | 41
22 | 111
假设使用之前创建的投影,查询该投影会返回以下值:
VMart=> SELECT * FROM values_product_b0;
a | b | product
----+-----+---------
3 | 11 | 33
3 | 55 | 165
8 | 9 | 72
8 | 23 | 184
16 | 41 | 656
22 | 111 | 2442