Firebirdグループ条項

vp_arth

ファイアバードグループのロジックが理解できない

クエリ:

SELECT t.id FROM T1 t 
INNER JOIN T2 j  ON j.id = t.jid 
WHERE t.id = 1
GROUP BY t.id

完璧に動作します

しかし、他のフィールドを取得しようとすると、次のようになります。

SELECT * FROM T1 t 
INNER JOIN T2 j  ON j.id = t.jid 
WHERE t.id = 1
GROUP BY t.id

エラーが発生します: Invalid expression in the select list (not contained in either an aggregate function or the GROUP BY clause)

shree.pat18

GROUP BYクエリで使用する場合、指定された1つまたは複数のフィールドが「キー」として使用され、データ行はこれら2つのフィールドの一意の組み合わせに基づいてグループ化されます。結果セットでは、このような一意の組み合わせはすべて1行のみです。

あなたの場合、グループ内の唯一の識別子はt.idです。ここで、テーブルに2つのレコードがあり、両方ともが付いているがt.id = 1、別の列の値が異なるとしますt.nameたとえば、と列の両方を選択しようとするidname、1つのグループが1つの行しか持てないという制約と直接矛盾します。そのため、グループキー以外のフィールドは選択できません。

集計関数の場合は異なります。これは、値を合計またはカウントするか、最大値を取得するときに、基本的にidフィールドのみに基づいてその操作を実行し、他の列のデータを事実上無視するためです。したがって、たとえば、特定のIDを持つすべての名前の数に対する答えは1つしかないため、問題はありません。

結論として、結果に列を表示する場合は、それでグループ化する必要があります。ただし、これによりグループ化がより細かくなり、望ましくない場合があります。その場合、次のようなことができます。

select * from T1 t
where t.id in
(SELECT t.id FROM T1 t 
 INNER JOIN T2 j  ON j.id = t.jid 
 WHERE t.id = 1
 GROUP BY t.id)

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

条項ごとのグループの総計

分類Dev

Firebird 1.5:最大値でグループ化

分類Dev

RegExp:If-グループをキャプチャするための条項は可能ですか?

分類Dev

条項の変更注文プロローグ[データベース操作]

分類Dev

特定の条項のセットを満たすグループのみを表示する方法はありますか?

分類Dev

多項式グループマッチング

分類Dev

Firebirdには「グループコミット」がありますか

分類Dev

xslt1.0条件付きグループ化

分類Dev

17.2条項でアプリが拒否されました。メールIDを要求する

分類Dev

PySpark多項回帰の参照グループ

分類Dev

作業項目と作業グループを理解する

分類Dev

仕様を使用したJPAの条項-JHipsterアプローチ

分類Dev

VSTS:機能と作業項目の間のグループレベル

分類Dev

Firebirdデータベースのアップグレード

分類Dev

メニュー項目はグループ外に追加されます

分類Dev

グループ化された二項データをrで分割します

分類Dev

django orm 最新項目を外部キーごとにグループ化

分類Dev

別の配列内のグループの配列の複数の項目

分類Dev

Python:辞書のリスト項目をグループ化する

分類Dev

プログラムグループのコンテキストメニュー項目がありません

分類Dev

if条件と3項演算子のループ。

分類Dev

配列からの同類項のグループ化とHTMLテーブルへの書き込み

分類Dev

Android:ナビゲーションメニュー項目のグループシーケンス

分類Dev

OpenMP注文条項

分類Dev

Firebird外部テーブル

分類Dev

ステップで時間ごとに配列の項目をグループ化する方法

分類Dev

R:グループおよび個々の多項式近似曲線をGMMプロットに追加する

分類Dev

配列項目をグループ化しますが、キーは配列です

分類Dev

レコード数別の上位5グループごとの上位項目(Access SQL)

Related 関連記事

  1. 1

    条項ごとのグループの総計

  2. 2

    Firebird 1.5:最大値でグループ化

  3. 3

    RegExp:If-グループをキャプチャするための条項は可能ですか?

  4. 4

    条項の変更注文プロローグ[データベース操作]

  5. 5

    特定の条項のセットを満たすグループのみを表示する方法はありますか?

  6. 6

    多項式グループマッチング

  7. 7

    Firebirdには「グループコミット」がありますか

  8. 8

    xslt1.0条件付きグループ化

  9. 9

    17.2条項でアプリが拒否されました。メールIDを要求する

  10. 10

    PySpark多項回帰の参照グループ

  11. 11

    作業項目と作業グループを理解する

  12. 12

    仕様を使用したJPAの条項-JHipsterアプローチ

  13. 13

    VSTS:機能と作業項目の間のグループレベル

  14. 14

    Firebirdデータベースのアップグレード

  15. 15

    メニュー項目はグループ外に追加されます

  16. 16

    グループ化された二項データをrで分割します

  17. 17

    django orm 最新項目を外部キーごとにグループ化

  18. 18

    別の配列内のグループの配列の複数の項目

  19. 19

    Python:辞書のリスト項目をグループ化する

  20. 20

    プログラムグループのコンテキストメニュー項目がありません

  21. 21

    if条件と3項演算子のループ。

  22. 22

    配列からの同類項のグループ化とHTMLテーブルへの書き込み

  23. 23

    Android:ナビゲーションメニュー項目のグループシーケンス

  24. 24

    OpenMP注文条項

  25. 25

    Firebird外部テーブル

  26. 26

    ステップで時間ごとに配列の項目をグループ化する方法

  27. 27

    R:グループおよび個々の多項式近似曲線をGMMプロットに追加する

  28. 28

    配列項目をグループ化しますが、キーは配列です

  29. 29

    レコード数別の上位5グループごとの上位項目(Access SQL)

ホットタグ

アーカイブ