SQLにおけるGroup Byの使用教程を詳しく説明する。
1、概要
「Group By」は文字どおり、「By」で指定された規則に従ってデータをパケット化することであり、パケットとは、一つの「データセット」をいくつかの「小領域」に分割し、いくつかの「小領域」に対してデータ処理を行うことである。
2、原始表
3、シンプルグループBy例1
4、Group ByとOrder By例2
Accessでは「order by数量の和desc」は使えませんが、SQL Serverでは大丈夫です。
5、Group ByでSelectが指定するフィールド制限例3
6、Group By Allの例4
「複数列パケット」は、実際には複数列(カテゴリ+要約)の統合された値でグループ化されており、例4では「a,a 2001,13」は「a,a 2001,11」と「a,a 2001,2」の2つのレコードの統合が見られます。
SQL Serverでは「group by all」がサポートされているが、Microsoft SQL Serverの未来バージョンでは、GROUT BY ALLは削除されます。新たな開発作業でGROUT BY ALLは使用されないようにします。。Accessでは「Group By All」はサポートされていませんが、Accessでは同様に複数の列のパケットをサポートしています。上記SQL ServerのSQLはAccessで書くことができます。
例3でgroup by文においてselectで指定されたフィールドは「グループ化されたフィールド」でなければなりません。他のフィールドがselectに現れたいなら、集計関数に含める必要があります。一般的な統合関数は以下の表の通りです。
関数
作用
サポート
sum(列名)
和を乞う
max(列名)
最大値
min(列名)
最小値
avg(列名)
平均値
ファースト(列名)
最初のレコード
Accessのみのサポート
last(列名)
最後のレコード
Accessのみのサポート
count(列名)
統計記録
注意とcount(*)の違い
例5:各グループの平均を求める
8、HavingとWhereの違い whereサブ句の役割は、クエリ結果をグループ化する前に、where条件に合わない行を削除することであり、つまりグループ化前にデータをフィルタリングすることであり、where条件にはグループ関数が含まれないため、where条件を使用して特定の行をフィルタリングすることである。 havingサブ句の役割は、条件を満たすグループをフィルタリングすることであり、すなわち、パケットの後にデータをフィルタリングすることであり、条件の中には、常にクラスター関数が含まれており、having条件を用いて特定のグループをフィルタリングし、複数のパケット標準を用いてグループ化することもできる。 例8
例10:Compute
computサブ句は、「照会結果」のデータの詳細を観察したり、各列のデータ(例10ではmax、min、avg)を統計したりして、返却結果はselectリストとcomputteの統計結果からなります。
例11:Commput By
例11は、例10と比較して「order byカテゴリ」と「…byカテゴリ」が多くなり、例10の実行結果は、実際にはパケット(a、b、c)に従って表示されており、各グループは、改組データリストと改組数統計結果から構成されている。 coputte子文はorder by子文と一緒に を使用しなければなりません。 compute...byはgroup byに比べて、グループ毎のデータの統計結果しか得られず、各グループのデータ を見ることができない。
実際の開発では、computとcompute byの役割は大きくなく、SQL Serverはcomputeとcompute byをサポートしていますが、Accessはサポートしていません。
締め括りをつける
以上は小编がみんなに绍介する详しい解决SQLの中でGroup Byの使用教程で、みんなに対して助けがあることを望みます!
「Group By」は文字どおり、「By」で指定された規則に従ってデータをパケット化することであり、パケットとは、一つの「データセット」をいくつかの「小領域」に分割し、いくつかの「小領域」に対してデータ処理を行うことである。
2、原始表
3、シンプルグループBy例1
select , sum( ) as from Agroup by
結果は下表のようになりますが、実は小計です。4、Group ByとOrder By例2
select , sum( ) AS from Agroup by order by sum( ) desc
戻り結果は下表のとおりです。Accessでは「order by数量の和desc」は使えませんが、SQL Serverでは大丈夫です。
5、Group ByでSelectが指定するフィールド制限例3
select , sum( ) as , from Agroup by order by desc
例3を実行するとエラーが提示されます。これは注意すべき点であり、selectで指定されたフィールドは、グループ化されたBy文の後に含まれるか、グループ化の根拠として使用される。集合関数に含めるかどうか。6、Group By Allの例4
select , , sum( ) as from Agroup by all ,
例4では、「要約」フィールドを指定できます。その理由は、「複数列パケット」に「要約フィールド」が含まれています。その結果は以下の表の通りです。「複数列パケット」は、実際には複数列(カテゴリ+要約)の統合された値でグループ化されており、例4では「a,a 2001,13」は「a,a 2001,11」と「a,a 2001,2」の2つのレコードの統合が見られます。
SQL Serverでは「group by all」がサポートされているが、Microsoft SQL Serverの未来バージョンでは、GROUT BY ALLは削除されます。新たな開発作業でGROUT BY ALLは使用されないようにします。。Accessでは「Group By All」はサポートされていませんが、Accessでは同様に複数の列のパケットをサポートしています。上記SQL ServerのSQLはAccessで書くことができます。
select , , sum( ) AS from Agroup by ,
7、Group Byと集計関数例3でgroup by文においてselectで指定されたフィールドは「グループ化されたフィールド」でなければなりません。他のフィールドがselectに現れたいなら、集計関数に含める必要があります。一般的な統合関数は以下の表の通りです。
関数
作用
サポート
sum(列名)
和を乞う
max(列名)
最大値
min(列名)
最小値
avg(列名)
平均値
ファースト(列名)
最初のレコード
Accessのみのサポート
last(列名)
最後のレコード
Accessのみのサポート
count(列名)
統計記録
注意とcount(*)の違い
例5:各グループの平均を求める
select , avg( ) AS from A group by ;
例6:各グループの記録数を求めます。
select , count(*) AS from A group by ;
例7:各グループの記録数を求めます。8、HavingとWhereの違い
select , sum( ) as from Agroup by having sum( ) > 18
例9:HavingとWhereの併用方法
select , SUM( )from Awhere gt;8group by having SUM( ) gt; 10
9、ComputeとCompute By
select * from A where > 8
実行結果:例10:Compute
select *from Awhere >8compute max( ),min( ),avg( )
実行結果は以下の通りです。computサブ句は、「照会結果」のデータの詳細を観察したり、各列のデータ(例10ではmax、min、avg)を統計したりして、返却結果はselectリストとcomputteの統計結果からなります。
例11:Commput By
select *from Awhere >8order by compute max( ),min( ),avg( ) by
実行結果は以下の通りです。例11は、例10と比較して「order byカテゴリ」と「…byカテゴリ」が多くなり、例10の実行結果は、実際にはパケット(a、b、c)に従って表示されており、各グループは、改組データリストと改組数統計結果から構成されている。
実際の開発では、computとcompute byの役割は大きくなく、SQL Serverはcomputeとcompute byをサポートしていますが、Accessはサポートしていません。
締め括りをつける
以上は小编がみんなに绍介する详しい解决SQLの中でGroup Byの使用教程で、みんなに対して助けがあることを望みます!