2016-08-01 28 views
0

IBM Informix 12.10の問題について助けが必要です。データベース。SQL select - グループ化して連結する(group_concatなし)

CREATE TABLE toys(product VARCHAR(255), colour VARCHAR(255)); 
INSERT INTO toys (product, colour) 
VALUES ('balloon', 'red'), 
('balloon', 'white'), 
('balloon', 'green'), 
('balloon', 'yellow'), 
('rubber duck', 'yellow'), 
('rubber duck', 'white'); 

私はSTUFF、GROUP_CONCAT、およびLISTAGGを試しました。

Initial table: "toys" 

product  | colour 
----------------------- 
balloon  | red 
balloon  | green 
balloon  | white 
balloon  | yellow 
rubber duck | yellow 
rubber duck | white 

結果のテーブルには、次のようになります

product  | colours 
----------------------- 
balloon  | red, green, white, yellow 
rubber duck | yellow, white 

はあなたの助けのためにありがとうございました!

+1

これはどのRDBMSですか? 'mysql'、' postgresql'、 'sql-server'、' oracle'、 'db2'のどれかを指定するタグを追加してください。 –

+0

ええと、それはInformixデータベースです...私は現時点ではそれ以上は分かりません。 – LordGhettofaust

+0

ちょうどヒント、あなたは "働いていない"より詳細を提供する必要があります。あなたが試したもの、エラーメッセージやコードなどを含める。一見重要ではない細部でさえ、問題の底に到達するために使用できる情報を提供することができます。 –

答えて

0

オラクルではlistagg()関数がトリックを行います。うまくいけばInformixも同様の機能を持っているはずです。

SQL> column PRODUCT format A20 
SQL> column COLOURS format A40 
SQL> with tbl(product, colour) as (
    select 'balloon', 'red' from dual union 
    select 'balloon', 'green' from dual union 
    select 'balloon', 'white' from dual union 
    select 'balloon', 'yellow' from dual union 
    select 'rubber duck', 'yellow' from dual union 
    select 'rubber duck', 'white' from dual 
    ) 
    select product, listagg(colour, ', ') within group (order by colour) as colours 
    from tbl 
    group by product; 

PRODUCT    COLOURS 
-------------------- ---------------------------------------- 
balloon    green, red, white, yellow 
rubber duck   white, yellow 

SQL> 
+0

ユーザーが権限を持っていないか、オブジェクトが見つかりません:LISTAGG :-( – LordGhettofaust

+0

これは多分試してみてください。https://github.com/jOOQ/jOOQ/issues/1276。あなた自身も検索しようとしています。!!。Informixのは、提供する機能でこれをエミュレートしますが、将来サーチャーのためにそれを見つけたら、その答えをポストバックすることを忘れないでください幸運 –

+0

うーん 「ユーザーが権限を持たないか、オブジェクトが見つかりません:XMLSERIALIZE」 'を選択し、製品、 SUBSTR( product' によっておもちゃ グループからXMLSERIALIZE(VARCHAR(1024)としてXMLAGG(XMLTEXT(CONCAT( ''、色))))、3) はSUBSTRは私の意見では奇妙に見えます。 – LordGhettofaust

関連する問題