0

既に作成されたデータでいっぱいのテーブルがあり、さらに行を追加したいと考えています。次のようなことをすると、これらの行は完全に表示されます。

select  elem_1, elem_2, 'myTag' as source, count(*) as tally 
from origin_table group by elem_1, elem_2;

私が基本的に行っていることは、origin_table からデータを取得し、elem_1 と elem_2 で選択して、これらのペアのそれぞれに「myTag」というラベルを付けることです。重複がある可能性があるため、count(*) も集計と見なし、origin_table に複数の等しいエントリがあることを確認します。これは避けるべき詳細です。

さて、私が広告に移ると、次のようなことをします:

insert in to destination_table 
select  elem_1, elem_2, 'myTag' as source, count(*) as tally 
from origin_table group by elem_1, elem_2;

postgres の吠え声:

ERROR:  invalid input syntax for integer: "myTag"
LINE 1: insert into destination_table select elem_1, elem_2, 'myTag' as sou...

私はそれを理解していますが、それを克服する方法がわからないので好きではありません。

それで、どうすればいいですか?

ありがとう!

4

1 に答える 1

1

a_horse_with_no_nameのアドバイスに従って、私は挿入物を次のようにキャストしました。

insert into destination_table (elem_1,elem_2,source,tally) select elem_1, elem_2, 'myTag' as source, count(*) as tally from origin_table group by elem_1, elem_2;

そしてそれは美しく働きます。何をどこに挿入するかをpostgresに伝える習慣を実際に身に付ける必要があります。

ありがとう!

于 2013-01-31T11:17:29.490 に答える