2016-03-27 14 views
0

SQLでは、行をグループ化して選択したフィールド(この場合は 'Test1')の値を連結するために 'String_agg(Test1、'、 ') 。例についてはExcelでSQLでstring_aggを使用する方法

私は '買い手' フィールド上String_aggを使用せずに結果がクエリを持っている:

**Key** | **Buyer** | **MP** 
1 | Josh | Gregory 
1 | Bred | Gregory 
2 | John | Ethan 

期待される結果String_aggを使用すると、次のとおりです。

**Key** | **Buyer** | **MP** 
1 | Josh, Bred | Gregory 
2 | John | Ethan 

しかし、問題は、別のExcelファイルからExcelファイルにデータを取得するSQLクエリでSQLクエリを実行しようとしていることです.Excelクエリのようなエラーが発生して失敗しますString_agg関数が分かりません。

クエリは次のとおりです。

SELECT `Sheet1$`.Key, string_agg(`Sheet1$`.Buyer, `, `) AS `Buyer`, `Sheet1$`.MP 
FROM `C:\Input\Data.xls`.`Sheet1$` `Sheet1$` 
GROUP BY 2 
ORDER BY `Sheet1$`.Key 

スクリーンショット:

Query screenshot

エラー:

Error Screenshot

誰かが私を助けて、どのように私は私のクエリを修正する必要が私に言うことができますそれを動作させるには?

ありがとうございました!

答えて

0

問題: Excelはデータベースではありません。

スプレッドシートパッケージで高度なクエリ機能を使用しようとしていますが、Excelの一部のバージョンではサポートされていることもありますし、プロセッサパワーを多用したり、ユーザーがシート上を何かを動かすとすぐに深刻な問題を引き起こしたり、ファイル自体であり、実際にはそれが設計されたものではありません。

解決方法:データベースを使用してください。

0

Excelの'concatenate'機能を少し見てみましょう。

私はCONCAT()としても使用できると信じています。このことができますConcatenation in SQL select query on Excel sheet

希望:

はまた、このSO質問を参照してください。

+0

CONCAT()関数は、連結するフィールドの数によって異なります。 String_aggはありません。私はクエリを実行した後、どれくらいの「買い手」がなるか分からない。私はそれらを連結し、他の分野を使わずに連結したいと考えています。ありがとう。 –

+0

@GiladKあなたはデータベースとしてExcelを使用していますが、そうではありません。実際のデータベースの使用を検討してください。私は「Excelはデータベースではない」と言うTシャツを自分で印刷する予定です。 –

+0

Lol :)あなたは正しいですが、それは私が今持っているものです。私は今すべての 'Excel DB'をAccessテーブルに移動し、そのAccessファイルへの接続を試みました。もう一度 'String_agg'関数が機能しません。私は何をすべきかわからない。しかし、あなたの時間のおかげで! –

関連する問題