問題タブ [group-concat]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
2614 参照

sql - MySQL - 行全体を連結するを選択します

行内のすべてのフィールドを選択して連結するにはどうすればよいですか?

私はこれに似た何かをしたい:

..しかし、明らかに上記は機能しません。助言がありますか?

0 投票する
2 に答える
1560 参照

sql - GROUP_CONCAT および LEFT_JOIN の問題 - すべての行が返されない

私のDBスキームが次のようになっているとしましょう:

最初のクエリを実行して、すべての製品とそのユーザー (存在する場合) を取得すると、次のようになります。

は、私にはよく見えますよ。ここで、同じことをしたい場合は、連結されたユーザー名 (ユーザーがいる場合、そうでない場合は NULL) を使用して、行ごとに 1 つの製品を持ちたい場合を除きます。

製品のユーザーがいない場合、 GROUP_CONCAT は、LEFT JOINがあっても、mysql がこの製品の行を生成するのを防ぎます。

  1. これは予想される MySQL の動作ですか?
  2. GROUP_CONCAT または別の関数を使用して期待される出力を得る方法はありますか?
0 投票する
1 に答える
665 参照

java - 集約されたデータを SQL または CODE でより適切にグループ化する (パフォーマンスの観点から)

文字列を連結して集計データを作ることについて意見を求めたい。列集計があるが、集計列で連結したい場合、どちらがパフォーマンスの面で高速ですか? 1 つの SQL を実行してから、CODE に集計します。または、メイン データを選択してから、一度に 1 つずつクエリを実行します。

例えば:

テーブルは COL_A_2 = COL_B_1 で結合され、集計列は COL_B_2 です。

オプション 1 (1 つの SQL を実行)

次にコードで、結果セットをループして COL_B_1 を集計します。(例: Java を使用)

オプション 2 (複数の SQL を実行)

次に、コード内でそれぞれを選択します(Ex Java)

複数のSQLを選択するとコストがかかる可能性があるため、通常はオプション1を実行します。しかし、これについてはよくわかりません。しかし、この種の集計を行う別の方法はありますか。私はすでにネットを検索しており、標準SQLには文字列連結集計はありません。また、TableA の図は単純化しすぎています。通常、TableA は複数のテーブルを結合した複雑なクエリであり、TableB も同様です。

0 投票する
2 に答える
128 参照

sql - 複雑なクエリ - 助けが必要です!

誰かがこれで私を助けてくれることを本当に願っています! 私は6つのテーブルを持っています:

製品
のprodid

Prodequipment
prodequipclassmainequipclassor
_
_


クラスIDを装備

Equipfunctions
のequipid
classid

機器
機器

Workshopequipmentworkshopidequipid
_
_

Products – 一部の製品 のリスト
Equipment – 一部の機器の リスト
Prodequipment – 製品を実行するために必要な機器のリスト。equipclassmain にリストされている機器を使用するか、equipclassor の機器に置き換えることができます。テーブル製品は、テーブル Prodequipment と 1 対多の関係にあります。つまり、1 つの製品を生産するために多くの異なるツール (機器) を使用しますが、equipclassmain/equipclassor のペアの誰でも使用することを選択できます。たとえば、写真を額装するには、木製フレームまたはプラスチック フレーム (1 組) と、カバー ガラスまたはカバー プラスチック (2 組目) を使用できます。必要に応じて組み合わせることができますが、両方のペアを使用する必要があります: カバーガラス付きの木製フレームまたはカバーガラス付きのプラスチックフレームまたはプラスチックカバー付きの木製フレームまたはプラスチックカバー付きのプラスチックフレーム。
EquipfunctionsEquipclasses – 1 つの機器をさまざまな方法で使用できるため、テーブル Prodequipment に直接リンクされていません。考えられるすべての機器のすべての単一使用がリストされているテーブル Equipclasses と、すべての機器の単一使用がリストされているテーブル Equipfunctions を作成しました。
Workshopequipment – ワークショップと使用している機器を一覧表示します。

ここで、2 つの異なる特定のワークショップ (workshopid = 1 と Workshopid = 4 としましょう) で製造できる製品のリストが必要です。つまり、これらのワークショップは両方とも、それらの製品を製造するために必要なすべての設備を備えています。これらのワークショップでは、上記で説明したのと同じ機器を使用する必要はないことに注意してください.

私はこのクエリを試しています:

しかし、「フィールド リストの列のクラス ID があいまいです」というメッセージが表示されます。ここで何が問題なのですか?

ありがとう!

0 投票する
3 に答える
22030 参照

sqlite - Sqlite group_concat の順序付け

Sqlite では、group_concat を使用して次のことができます。

ただし、連結の順序はランダムです-ドキュメントによると。

group_concat の出力をソートする必要があります

これどうやってするの?

0 投票する
2 に答える
2234 参照

sql - 「特別なニーズ」のあるSqlite group_concat select

次のことを行うために、Sqlite で group_concat を使用する方法を知っています。

f1によるテーブルグループからid、f1、group_concat(f2)、f3を選択

ご覧のとおり、ID の 1 と 3 は削除されています。これは予期された動作です。しかし、私は必要になります:

したがって、すべてのレコードが返され、別のフィールド (f3) が group_concat で更新されます

Sqliteでこれを行う方法はありますか?

ありがとうございました

0 投票する
5 に答える
371 参照

mysql - 特定のスキルを持つユーザーを選択するMYSQL

私は、これまでに行った中で最も複雑な SQL クエリを混乱させています。これは、おそらくほとんどの人にとって非常に単純です (:

User、Skills、User_Skills の 3 つのテーブルがあります。そのフィールドは、かなり自明である必要があります。

自分の基準を満たすスキルを 1 つ以上持っている人を選びたい。

求めているスキルを持つユーザーを選択できますが、複数のスキルを照会するための構文がわかりません。

クエリを 1 つだけ使用したいので、GROUP_CONCAT を使用しようとしています。

ここに私のSQLがあります:


スキル 5 と 9 を持つ人のみに検索を制限するにはどうすればよいですか?

0 投票する
1 に答える
711 参照

sql - 3NF mysql テーブルの複数の行の内容を組み合わせる

すべてのデータを忠実に正規化したので、出力用に 3NF 行を 1 行に結合する際に問題が発生しました。これまではサーバー側のコーディングでこれを行ってきましたが、さまざまな理由から、別の行に関連するすべての行を選択し、それらをすべて MySQL で 1 つの行に結合する必要があります...

試して説明するには:

私は3つのテーブルを持っています。

  • カテゴリー
  • 記事
  • カテゴリArticles_3NF

カテゴリには、 CategoryID + タイトル、説明などが含まれます。ArticleID + コンテンツを格納するテキスト フィールドで構成される、Articles テーブル内の任意の数の記事を含めることができます。CategoryArticlesテーブルは 2 つをリンクするために使用されるため、 CategoryID と ArticleID の両方が含まれます

ここで、Category レコードを選択し、リンクしている CategoryArticles_3NF テーブルを介して Articles テーブルに結合すると、結果はそのカテゴリに含まれる記事ごとに個別の行になります。問題は、カテゴリごとに 1 つの行を出力し、その中のすべての記事のコンテンツを含むことです。

それがばかげた要求のように聞こえる場合、それはそうであるからです。問題を説明する良い方法として記事を使用しているだけです。私のデータは実際には多少異なります。

とにかく-これを達成するために私が見ることができる唯一の方法は、「GROUP_CONCAT」ステートメントを使用してコンテンツフィールドをグループ化することです-これの問題は、これが返すことができるデータの量に制限があることです.はるかに多くを処理できます。

誰でもこれを行う方法を教えてもらえますか?

ありがとう。

0 投票する
7 に答える
36402 参照

mysql - PHPMYADMIN で group_concat を使用すると、結果が [BLOB - 3B] として表示されます。

整数フィールドで mysql の GROUP_CONCAT を使用するクエリがあります。
PHPMYADMIN を使用してこのクエリを開発しています。私の問題は、連結フィールドの結果である 1,2 を表示する代わりに、[BLOB - 3B] を取得することです。

クエリは

(両方のフィールドは unsigned int であり、両方とも一意ではありません)

実際の結果を確認するには、何を追加すればよいですか?

0 投票する
3 に答える
23281 参照

mysql - group_concat() 内で sum() を使用するには?

質問が修正されました

本当に合計の group_concat が欲しかった...

表:ショップ

表:アイテム

結果#1の合計列を取得するためにgroup_concatを取得できないようです

前もって感謝します