SQL合計関数:SUM。 SQL集計関数-SUM、MIN、MAX、AVG、COUNT
SQL-レッスン11
サブサム関数は、統計関数、集計関数、またはサブサム関数とも呼ばれます。 これらの関数は、子の行のセットと1つの値のローテーションを完了します。 そのような機能は5つ未満です。- AVG()関数は平均を回転させます。
- COUNT()この関数は、列の行数をローテーションします。
- MAX()関数は、列の最大値をローテーションします。
- MIN()関数は、列の最小値を回転させます。
- SUM()関数は、スパンの合計値をローテーションします。
SELECT MIN(価格)、MAX(価格)、AVG(価格)FROM価格;
さて、「Budynok druk」(id = 2)の郵便局員がどれだけのお金を持ってきたか知りたい。 そのような要求を折りたたむことはそれほど簡単ではありません。 落ち着いて、ヨガの折り方を見てみましょう。
1.配達(入荷)の表から、「Budynok druku」郵便リーダー(id = 2)の要求に応じて、配達の識別子(id_incoming)を選択します。
2.ここで、供給ジャーナル(magazine_incoming)のテーブルから、供給の項目1で見つかった商品(id_product)と数量を選択する必要があります。 Tobtoは、デポジットのパラグラフ1から要求されます。
3.次に、結果のテーブルに、見つかった製品の価格を追加する必要があります。これは、価格テーブルに保存されます。 そのため、アイテムid_productごとにテーブルMagazine of deliverys(magazine_incoming)とPrices(prices)を組み合わせる必要があります。
4.登場したテーブルでは、スマは明らかにぶら下がっていません、tobto 計算額。 このようなステートメントを作成する機能は、MySQLに転送されました。 何を数えるのか、何を数えるのかを質問で示す必要が少ない人のために。 私たちのお尻にはsummaと呼ばれるそのようなstovpetsがあり、ワインを数えることはstovptsіvの量と価格の2倍になります。 新しい建物の名前は、ASという言葉で承認されています。
SELECT Magazine_incoming.id_product、magazine_incoming.quantity、prices.price、magazine_incoming.quantity * prices.price AS summa FROMmagazine_incoming、prices WHEREmagazine_incoming.id_product = price.id_product AND id = com
5.よかった、私たちはより少ない合計で残されました、そして私たちはお金の合計のために、「ブディノイからドルクへ」の郵便局員が私たちに商品を持ってきたことを知っています。 SUM()関数を使用するための構文は次のとおりです。
SELECT SUM(table_name)FROM table_name;
Im'ya stovptsya to us v_domo --summa、およびテーブルの名前の軸がないため、リクエストの結果にはなりません。 仕事とは? そのような振る舞いのために、MySQLにはステートメントがあります。 与える-さらに投票するために、一意の名前を希望し、データベースに保存できる投票を求めます。
攻撃を警告するための構文:
CREATE VIEWView_nameASクエリ;
report_vendorによって報告されたようにリクエストを保存しましょう:
CREATE VIEW report_vendor AS SELECT Magazine_incoming.id_product、magazine_incoming.quantity、prices.price、magazine_incoming.quantity * prices.price AS summa FROM Magazine_incoming、prices WHERE Magazine_incoming.id_com = product_com);
6.これで、合計関数SUM()によって軸をねじることができます。
SELECT SUM(summa)FROM report_vendor;
Axes miで結果に到達しましたが、貢献度、集計、カウントされる列、および症状をスコアリングする機会がありました。 したがって、otrimannyaの場合、結果は他の方法なしで考える必要がある場合があります。 次に、2つの非常に重要なトピックにぶつかりました。その現象の要点を数えることです。 レポートでそれらについて話しましょう。
カウントフィールド(stowpts)
お尻で、私たちは今日の数学の分野を見ました。 ここで、乗算演算(*)、およびvodnimannya(-)、加算(+)、rozpodіl(/)として勝つことが可能であることを追加したいと思います。 高度な構文:SELECT stow_name_1、stow_name_2、stow_name_1 * stow_name_2 AS enumerated_stow_name FROM table_name;
もう1つのニュアンスは、カウントされる列の名前のタスクに選択されたキーワードASです。 実際、どのキーワードの助けを借りて、それらがstovptsіvであるかどうかの仮名が与えられています。 必要ですか? コードをスピーディーに読み取るため。 たとえば、私たちの症状は次のようになります。
CREATE VIEW report_vendor AS SELECT A.id_product、A.quantity、B.price、A.quantity * B.price AS summa FROM Magazine_incoming AS A、prices AS B WHERE A.id_product = B.id_product AND id_incoming =(SELECT id_ining WHERE id_vendor = 2);
待ってください、とても短くて賢いものです。
外観
マニフェストの作成の構文を調べました。 それらの症状の作成後、テーブルのように立証することが可能です。 それらの前に勝つために、データをフィルタリングしてソートし、一方を他方に追加します。 片側から見ると、(お尻のように)詰まることが多い折りたたみ式の飲み物を節約するのにも良い方法です。エールスレッドメモリ、scho zavlennya-tseテーブル、つまりde stinksはデータを保存するため、他のテーブルからデータを取得する可能性は低くなります。 まず、テーブルのデータを変更すると、プレゼンテーションの結果も変更されます。 また、別の言い方をすれば、提出前の要求に対しては、必要なデータの要求があるため、DBMSの生産性が低下します。 Tozhzlovzhivatそれらはvartoではありません。
パートナーからリリースされたPCモデルの数をどのように認識しますか? コンピューターで平均値を計算する方法、同じ技術的特性をどのように見つけることができますか? 実際の統計情報に関連する数やその他の栄養に基づいて、あなたは助けのためのアドバイスを受けることができます サブバッグ(集計)関数。 この標準は、次の集計関数を転送します。
すべての関数は同じ値をローテーションします。 どの機能で カウント、最小і MAXその時間に、あらゆるタイプのデータの前にzastosovnі 和і AVG数値フィールドの場合はvikoristovuyutsyaが少なくなります。 関数間の残差 カウント(*)і カウント(<имя поля>) ファゴットの背後にいる友人はNULL値をあきらめないと思います。
お尻。 パーソナルコンピュータの最低価格と最高価格を確認します。
お尻。 スクライブAによって発行されたコンピューターの実際の数を調べます。
お尻。 Aタイプでリストされているさまざまなモデルの数をどのように判断すれば、攻撃的なランクとして定式化できますか(この事実によると、皮膚モデルは製品テーブルに1回記録されます)。
お尻。 選択ツールAで許可されている現在の異なるモデルの数を確認します。数は前のモデルと同様です。この場合、選択ツールAで許可されているモデルの総数を示す必要があります。また、PCテーブル内のさまざまなモデルの数を知る必要があります(それらは販売可能です)。
統計指標の選択が一意の値のみを獲得するために、 集計関数の引数あなたはvicoristすることができます DISTINCTパラメーター。 2番 パラメータALL umovchannyamのvikoristovuєtsyaと、コラムに登場するすべての意味の愚か者を伝えます。 オペレーター、
PCモデルの数をどのように考慮する必要がありますか、viroblenih 肌 virobnik、それからvikoristovuvatする必要があります 命題GROUPBY、構文的に攻撃的 命題WHERE.
提案GROUPBY
提案GROUPBY vikoristovuetsyavyznachennyavihіdny行のグループ。zastosovuvatisyaが可能です。 集計関数(COUNT、MIN、MAX、AVG、SUM)。 その日の命題として、そして勝利の集約関数として、名前の付いたすべてのステップは、 選択する、に含まれているため 集計関数、および関数は、要求の述語と一致するかのように、行のセット全体にzastosovuvatysyaを実行します。 別の方法では、SELECTリストのすべての列、 入らなかった集計関数で指定する必要があります 命題GROUPBYで。 このため、すべての行はグループに分割され、これらの列の値の同じ組み合わせによって特徴付けられます。 そこからスキングループまで、集約機能がブロックされます。 GROUP BYでは、すべてのNULL値が等しいものとして扱われることに注意してください。 NULL値を含む必要があるフィールドをグループ化すると、そのようなすべての行が同じグループに分類されます。Yakscho 明示的な提案の場合GROUPBY、SELECTステートメント内 毎日の集計関数、次にスキングループから1行だけ回転します。 この可能性、DISTINCTキーワードの順序は、結果セットから重複する行を除外するように選択できます。
簡単な例を見てみましょう。
SELECT model、COUNT(model)AS Qty_model、AVG(price)AS Avg_price PCから GROUPBYモデル; |
PCのスキンモデルのご要望に応じて、数量と平均品質を表示します。 モデル(モデル番号)の同じ値を持つ行がグループを修飾し、値の数とスキングループの平均値がSELECT出力で計算されます。 入力の結果、次の表が表示されます。
モデル | Qty_model | Avg_price |
1121 | 3 | 850.0 |
1232 | 4 | 425.0 |
1233 | 3 | 843.33333333333337 |
1260 | 1 | 350.0 |
SELECTliteral stovpets z dateのYakbyは、特定の肌の日付の兆候の数を数えることが可能です。 日付をグループ化する必要があり、肌の組み合わせ値(モデル-日付)の集計関数も計算されました。
歌手のІsnuєスプラット 集計関数を獲得するためのルール:
- 結果として 同じ行を取っていない(またはグループの1行)、次に計算の出力データ(1日あたりの集計関数からのものかどうか)。 そして、ここでは、カウント関数の結果はゼロになり、他の関数の結果はNULLになります。
- 口論集計関数 集計関数を自分で定義することはできません(関数内の関数)。 トブト。 たとえば、1杯の飲み物では、平均値の最大値を達成することはできません。
- 関数COUNTєを入力した結果 整数(INTEGER)他の集計関数は、処理されるデータのタイプを減らします。
- 同様に、SUM関数を使用すると、結果が減算され、データ型の最大値がシフトされます。 恩赦.
父よ、私はあなたに復讐しないようにお願いします 命題GROUPBY、 それから 集計関数、に含まれています SELECT提案; 復讐を求める方法 命題GROUPBY、列または列のグループと同じ値である可能性のあるスキン入力行、タスク 命題GROUPBY、グループになり、 集計関数 vykonuyutsyaスキングループokremo。
命題
Yakscho WHERE句行をフィルタリングするための述語を定義し、次に 命題停滞 グループ化後値のグループをフィルタリングする述語に類似した指定の場合 集計関数。 この命題は、助けのために取り上げられるため、意味の再検証に必要です。 集計関数サインインしたレコードの数行ではありません からの言葉、 そのような行のグループ。 したがって、そのような再検証はできません どこ.
Vchimosyapіdbivatipіdbags。 Hі、SQL計算の結果ではなく、データベーステーブルの値のサブバッグです。 集約SQL関数は、最大1つの結果値までの値の範囲です。 SQL集計関数SUM、MIN、MAX、AVG、およびCOUNTが最も頻繁に使用されます。 集計関数には2つの違いがあります。 第一に、集約関数は強力な力によって勝利し、結果として得られる値を1つ変えます。 その他:集計関数はSQL GROUP BY演算子と照合されます。つまり、フィールド(スタンド)でグループ化して、スキングループから結果の値を減算します。 グループ化せずに集計関数の内訳の最初を見てみましょう。
SQLSUM関数
SQL SUM関数は、データベーステーブルのスパニング値の合計をローテーションします。 Vaughnは、そのような数の意味であるstovptsіvまでしかzastosovuvatisyaを実行できません。 結果のsumiを取得するようにSQLに要求すると、次のように開始されます。
SELECT SUM(IM'I_COLUMN)..。
その後、FROM(IM'YA_TABLES)に従い、追加のWHERE構文の後に、心を指定することもできます。 さらに、DISTINCTは列の名前の前に書き込むことができます。これは、一意の値のみが保護されることを意味します。 ロックの場合、すべての値が払い戻されます(特に、DISTINCTではなくALLを指定できますが、ALLという単語は拘束力がありません)。
このレッスンのデータベースをMSSQLServerにダウンロードする場合、DBMSがコンピューターにインストールされていない場合は、それをインストールできます。 無愛想な指示 .
私たちは企業のデータベースであるCompany1と協力しています。 ts_єїデータベースデータ、їїテーブルおよび書き込みテーブルdanimiを作成するためのスクリプト-in cim送信用のファイル .
例1。Єїїpіdrozdіliとsvіrobіtnikіvに関するデータを持つ企業のデータベース。 スタッフテーブルには、採用担当者の給与に関するデータも含まれています。 表からの選択は次のようになります(画像を拡大するには、マウスの左ボタンでクリックします)。
余剰給与の合計を修正するために、要求を進めることができます(MS SQL Serverでは-USEcompany1のフロントデザインから;):
SELECT SUM(Salary)FROM Staff
Tseyは値287664.63の順番を要求します。
そして今 。 右側では、すでに物事が簡単になり、静かに近づき始めています。これは実用的です。
SQLMIN関数
SQL MIN関数は、値の最小平均値をローテーションするためにいくつかの値も使用します。 この関数の構文は、SUM関数の構文と似ています。
例3。データベースはテーブルです-アプリケーション1と同じです。
spіvrobіtnikіvvіddіlz番号42の最低賃金について知る必要があります。事前リクエストを作成する相手(MS SQL Serverで-フロントデザインUSEcompany1;):
戻り値は10,505.90です。
更新します 自給自足の権利。 そうする権利を持っている人にとっては、会社の更新に関するデータを復讐するために、StaffテーブルだけでなくOrgテーブルも必要です。
例4。テーブルOrgがStaffテーブルに追加され、会社の更新のデータを平均化します。 RokivのVivesti最小数、opratsovanyh 1spіvrobіtnikvіddіlі、Bostonіの近くのrastashovanuyu。
SQLMAX関数
SQL MAX関数も同様に機能するため、システムの平均値の最大値を設定する必要がある場合は停止します。
例5。
番号42のspivrobitnikivワーカーの最大給与を決定する必要があります。事前リクエストを作成します(MS SQLServerの場合-フロントデザインUSEcompany1;):
値18352.80を読み取ります
来る時間 自給自足の権利.
例6。私は2つのテーブル(スタッフと組織)に精通しています。 コミッションの最大値の名前を導入して、支払いグループ(Division)Easternに属するリーダーから1スピンを取ることができるようにします。 ヴィコリスタティ JOIN(テーブルの作成).
SQLAVG関数
フォワード関数の説明の構文を、SQLAVG関数に類似した正しいものとして参照しました。 この関数は、spatの平均値の平均値を回転させます。
例7。データベースはそのテーブルです-フロントバットと同じです。
番号42のspivrobitniksの平均的な作業経験について調べてみましょう。攻撃的な要求を作成する相手(MS SQLServer上で-USEcompany1のフロントデザインを使用):
結果は6.33の値になります
例8。 1つのテーブルを持つPratsiyuemo-スタッフ。 4年から6年の経験を持つ開業医の平均給与を入力してください。
SQLCOUNT関数
SQL COUNT関数は、データベーステーブル内のレコード数をローテーションします。 クエリSELECTCOUNT(IM_COLUMN)...で指定すると、結果は、NULL(未定義)値を持つウラニウムレコードのないレコードの数になります。 zを使用して引数として勝ち、SELECT COUNT(*)...を要求し始めると、結果はテーブル内のすべてのレコード(行)の数になります。
例9。データベースはそのテーブルです-フロントバットと同じです。
すべてのspivrobitnikの数、手数料の控除方法を知る必要があります。 Comm値がNULLではない列の数は、順番に、より前方にあります(MS SQLServerの場合-フロント構造のUSEcompany1;):
スタッフからカウント(通信)を選択
結果は値11になります。
お尻10データベースはそのテーブルです-フロントバットと同じです。
テーブル内のレコードの総数を認識する必要がある場合は、COUNT関数の引数として自動的に要求されます(MS SQLServerの場合-フロント構造USEcompany1;):
スタッフからカウント(*)を選択
結果は値17になります。
攻撃的に 独立したビジョンの権利 pidzapitをvikoristovuvatする必要があります。
例11。 1つのテーブルを持つPratsiyuemo-スタッフ。 Vivestikіlkіstpratsіvnіvіvіddіlіplanuvannya(平野)。
SQL GROUP BY(グループ化)から関数を一度に集約します
次に、SQLGROUPBY演算子を使用して集計関数を一度に見てみましょう。 SQL GROUP BY演算子は、データベーステーブルの列の結果の値をグループ化するために使用されます。 現場で レッスン、どのオペレーターへの割り当て.
データベース「Portalgoloshen1」を備えたPratsyuvatimemo。 tsієїデータベース、їїテーブルを作成し、データテーブルを書き込むためのスクリプト- cim送信用のファイル .
お尻12また、ポータルのデータベースは唖然とします。 その日の名誉毀損に関するデータを報復するために、Adsテーブルを報復することを誓います。 カテゴリセクションは、誹謗中傷の優れたカテゴリ(たとえば、ネルコミスト)に関するデータを復讐するためのものであり、パーツセクションは、カテゴリに含めることができる他のパーツに関するものです(たとえば、アパートやダーチャの一部は、ネルコミストの一部です)。カテゴリー)。 スタンの数に関するデータを収集するためのStovpetsUnitsと、スタンを提出するために取得されたStovpetsMoney-約1ペニーの金額。
カテゴリー | 部 | ユニット | お金 |
輸送 | 車 | 110 | 17600 |
不条理 | アパート | 89 | 18690 |
不条理 | サマーコテージ | 57 | 11970 |
輸送 | オートバイ | 131 | 20960 |
Budmaterials | doshki | 68 | 7140 |
電気工学 | テレビ | 127 | 8255 |
電気工学 | 冷蔵庫 | 137 | 8905 |
Budmaterials | Regips | 112 | 11760 |
ドズビル | 本 | 96 | 6240 |
不条理 | ブディンキ | 47 | 9870 |
ドズビル | 音楽 | 117 | 7605 |
ドズビル | ゲーム | 41 | 2665 |
VykoristovuyuchiのオペレーターSQLGROUPBYは、ペニーの合計を知っています。これは、肌のカテゴリで中傷を提出したことに対するotrimanihです。 攻撃的な要求を記述します(MS SQLServer上で-フロントコンストラクションからUSEadportal1;):
カテゴリを選択、カテゴリごとにADS GROUPからのお金としてSUM(お金)
お尻13データベースはテーブル自体であり、フロントバットにあります。
邪悪なオペレーターSQLGROUPBY、z'yasuvati、皮膚カテゴリーのこの部分では、最大数の嘔吐物が提出されました。 攻撃的な要求を記述します(MS SQLServer上で-フロントコンストラクションからUSEadportal1;):
SELECT Category、Part、MAX(Units)AS Maximum FROM ADSGROUPBYカテゴリ
結果は次のようになります。
1つのテーブルのSubsumkovyと個々の値を取ることができます UNIONオペレーターの助けを求める要求の結果を組み合わせる.
リレーショナルデータベースと言語SQL