如何使用 create-select 语句设置列类型
how to set column type with create-select statement
我正在尝试使用 select 语句创建 table,这不需要我设置列类型。但是我需要 percent
列是一个浮点数,但我得到的是 0 和 1。我如何将该列设置为浮点数或小数?
create table C as(
select a.pid, b.date,
((select a.count(cost) where cost > '10')/(select a.count(cost))) AS percent
from A a join B b
on a.pid = b.pid
group by 1,2,3);
我的输出如下所示,但我需要它的第三列是浮点数:
pid date percent
1 2015-01-01 1
2 2015-04-03 0
怎么样:
create table C as(
select a.pid, b.date,
((select a.count(cost)*1.000 where cost > '10')/(select a.count(cost))) AS percent
from A a join B b
on a.pid = b.pid
group by 1,2,3);
编辑:别介意以上内容
以下内容已经过测试,看起来很开心。
create table i1
(
h varchar(10),
g varchar(10)
);
insert i1 (h,g) values ('a','b'),('a','b');
-- drop table c;
create table c (percent float not null) as
select h,count(*) as percent from i1
describe c;
我正在尝试使用 select 语句创建 table,这不需要我设置列类型。但是我需要 percent
列是一个浮点数,但我得到的是 0 和 1。我如何将该列设置为浮点数或小数?
create table C as(
select a.pid, b.date,
((select a.count(cost) where cost > '10')/(select a.count(cost))) AS percent
from A a join B b
on a.pid = b.pid
group by 1,2,3);
我的输出如下所示,但我需要它的第三列是浮点数:
pid date percent
1 2015-01-01 1
2 2015-04-03 0
怎么样:
create table C as(
select a.pid, b.date,
((select a.count(cost)*1.000 where cost > '10')/(select a.count(cost))) AS percent
from A a join B b
on a.pid = b.pid
group by 1,2,3);
编辑:别介意以上内容
以下内容已经过测试,看起来很开心。
create table i1
(
h varchar(10),
g varchar(10)
);
insert i1 (h,g) values ('a','b'),('a','b');
-- drop table c;
create table c (percent float not null) as
select h,count(*) as percent from i1
describe c;