0

group by に追加の列を含めると、結果の行数が変わりますか?

テーブル A(col1,col2....col9) で選択クエリを実行していて、最初に含めました

select col1,col2,col3 
from A where col1 = (condition) 
group by col1, col2, col3

これにより、一定数の結果が得られました。

今、私はこれにクエリを変更しました

`select col1,col2,col3, col8,col9 
from A where col1=(condition) 
group by col1,col2,col3, col8,col9' 

結果の行数が異なりました。考えられる説明は何ですか?

4

3 に答える 3

1

これらの列をグループ化することにより、本質的に、グループ化された列で結果を区別することができます。したがって、列 1、2、3、18、および 19 が共通の行がある場合、それらは一緒に折りたたまれます。

于 2013-07-24T15:28:07.333 に答える
1

col1、col2、および col3 の組み合わせが一意でない場合、これら 3 つの同じ組み合わせで複数の行を持つことができます。

それが発生し、それらの重複が col8 および/または col9 の値が異なる場合、それらの余分な列でグループ化すると、より多くの行が発生します。

select distinctを使用しても同じ結果が得られることに注意してください。group byたとえば、次のように合計やカウントを計算するなど、他の列を集計する場合に特に使用されます。

select 
  col1, col2, col3, 
  sum(col8) as total8 
from A 
group by col1, col2, col3

上記のクエリは、col1、col2、および col3 の各一意の組み合わせと、各組み合わせのすべての col8 の合計を提供します。

于 2013-07-24T15:28:18.797 に答える