SQL集計関数– SUM、MIN、MAX、AVG、COUNT。 SQLで計算された合計が適用されます

ゴロフナ / Nalashtuvannya

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という単語は拘束力がありません)。

MS SQL Serverでこのレッスンのデータベースにダウンロードする場合、DBMSがコンピューターにインストールされていない場合は、この要求の手順に従ってインストールできます。 .

私たちは企業のデータベースであるCompany1と協力しています。 qієїdannyhデータベース、їїテーブルおよび書き込みテーブルdanimiを作成するためのスクリプト-送信された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でspivrobitnikの最高給与を確認する必要があります。事前リクエストを作成します(MS SQL Serverで-フロントデザイン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。 データのデータベース、テーブル、およびデータの書き込みテーブルを作成するスクリプト-cimリクエストのファイル .

お尻12また、ポータルのデータベースは唖然とします。 その日の名誉毀損に関するデータを報復するために、Adsテーブルを復讐することを誓います。 カテゴリセクションは、誹謗中傷の優れたカテゴリ(たとえば、ネルコミスト)に関するデータを復讐するためのものであり、パーツセクションは、カテゴリに含めることができる他のパーツに関するものです(たとえば、アパートやダーチャの一部は、ネルコミストの一部です)。カテゴリー)。 スタンの数に関するデータを収集するためのStovpetsUnitsと、スタンを提出するために取得された約1ペニーの金額のStovpetsMoney。

カテゴリーユニットお金
輸送110 17600
不条理アパート89 18690
不条理サマーコテージ57 11970
輸送オートバイ131 20960
Budmaterialsdoshki68 7140
電気工学テレビ127 8255
電気工学冷蔵庫137 8905
BudmaterialsRegips112 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

算術演算子の選択と列の番号付けについて説明します。 サブサム(集計)関数COUNT、SUM、AVG、MAX、MINが考慮されます。 GROUP BY演算子の使用は、データ選択要求のグループ化に使用されることが望まれます。 HAVING命題の停止について説明します。

Pobudovaはフィールドを数えました

折りたたみ用のvapadkaの上部に カウントされた(pokhіdny)フィールド SELECTリストで、SQL移動の正しいバージョンを指定します。 tsikh vyslovlyuvannyahの算術演算では、SQL移動関数を呼び出すだけでなく、加算、参照、乗算、加算を行います。 テーブルの任意のテーブル(フィールド)の名前を指定できますが、命令の提案FROMのリストに示されているように、要求のテーブルの名前を選択することもできます。 プロンプトが表示されたら、virazіvは弓が必要な場合があります。

SQL標準では、結果のテーブルの列の名前、特にAS句を明示的に指定できます。

Commodity.Name、Commodity.Price、Favor.Quantity、Commodity.Price * Favor.Quantityを、Commodity INNER JOIN FavorONCommodityからのバリアントとして選択します。 例6.1。 Rozrahunokzagalnoyvartostikozhnyї根拠。

例6.2。指定された名前と最初のクライアントから会社のリストを選択します。

SELECT Company、Name + "" + Left(First Name、1)+"。"+ Left(By Father、1)+"。"ASПІБFROMClient 例6.2。 クライアントの指定された名前とイニシャルから会社のリストに追加します。

vikoristanの要求に応じて、Left機能が導入されました。これにより、このモードのテキスト変更で悪のシンボルを1つ表示できます。

例6.3。販売日・月から商品一覧をご確認ください。

SELECT Item.Name、Year(Product.Date)AS Year、Month(Property.Date)AS Month FROM Item INNER JOIN Item ON Item.ItemID = Year.ProductID 例6.3。 Otrimanyaを指定された日付と販売月からの商品リストに追加します。

vikoristanの要求に応じて、Year関数とMonth関数を使用して、日付と日付の月を確認します。

バッグ機能の籐リスト

ヘルプのために サブバッグ(集計)関数 SQLクエリのフレームワーク内で、出力セットの選択された値の乗数に関するいくつかの特定の統計データを取得できます。

Koristuvachevyが利用可能で基本的 サブバッグ機能:

  • Count(Viraz)-SQLクエリの出力セット内のレコード数を表示します。
  • 最小/最大(Viraz)-現在のフィールドに最小および最大の非個人的な値を割り当てます。
  • 平均(viraz)-この関数を使用すると、選択したレコードの最初のフィールドに保存されている匿名値の平均値を分解できます。 Vonoє算術平均値、tobto。 値の合計、それらの量の細分。
  • Sum(Viraz)-匿名値の合計を計算します。これは、最初のフィールドで選択されたエントリの数と同じです。

ほとんどの場合、聖人の名前はビラズのように前に出てきます。 Virazは、テーブルの値に従ってカウントできます。

これらの関数はすべて、テーブルの1つの列の値、または算術ビューで動作し、1つの値を回転します。 関数COUNT、MIN、およびMAXは、数値フィールドの前と非数値フィールドの前の両方で停止しますが、関数SUMとAVGは、わずかなCOUNT(*)を使用して、異なる数値フィールドでのみ勝つことができます。 関数の結果を計算するときに、省略された特定の値に対してのみ操作を停止する必要がある場合は、すべての空の値がリストに含まれます。 COUNT(*)オプションは、COUNT関数の特殊なバリエーションであり、結果のテーブルのすべての行によって、互いに独立して空であると認識され、他の値かどうかを複製します。

特定の関数を削除する前に重複する値を含める必要がある場合は、特定の関数の名前の前にキーワードDISTINCTを付けてください。 MINおよびMAX機能には意味がない場合があり、タンパク質はSUMおよびAVG機能の結果に干渉する可能性があり、特定の皮膚状態に存在する可能性があるため、これをさらに抑える必要があります。 さらに、キーワードDISTINCTは、1回の要求でのみ指定できます。

次のことに注意することがさらに重要です サブバッグ機能 HAVINGプロポジションウェアハウスよりもSELECTプロポジションリストの方が勝つことができます。 他の状況では、それは受け入れられません。 SELECT命題のリストのように サブバッグ機能、およびテキストには、これらのグループのグループ化を保証する毎日のフレーズGROUP BYが含まれます。その場合、命題のリストに要素を含めることはできませんSELECT バッグ機能.

例6.4。製品名のアルファベットを指定してください。

SELECT Min(Trade name)AS Min_Name FROM Product 例6.4。 アルファベットにちなんで商品に名前を付けます。

例6.5。好意の数を指定します。

SELECT Count(*)AS土地の数FROMカウント 例6.5。 好意の数を指定します。

例6.6。販売された商品のsumarnukіlkіstを計算します。

SELECT Sum(Place。Quantity)ASQuantity_productFROMペア 例6.6。 販売された商品のsumarnoїkіlkostіの任命。

例6.7。販売された製品の平均価格を計算します。

SELECT Avg(Item.Price)AS Avg_Price FROM Item INNER JOIN Item ON Item.ItemId = Product.ItemId; 例6.7。 販売された商品の平均価格の指定。

SELECT Sum(Item.Price * Perfect.Quantity)AS Variety FROM Item INNER JOIN Item ON Item.ItemId = Perfect.ItemId 例6.8。 Pіdrakhunokvartostiは商品を販売しました。

提案GROUPBY

多くの場合、リクエストに応じて、「肌...」というフレーズのように聞こえる中間ポーチを作成する必要があります。 その場合、命題GROUPBYがSELECTステートメントで優先されます。 GROUP BYの場合、リクエストはグループリクエストと呼ばれ、シャードはデータとグループ化され、SELECT操作の結果として削除されます。その後、スキングループが単一の合計行に形成されます。 SQL標準では、SELECT句とGROUPBY句は相互に密接に関連している必要があると提案されています。 GROUP BY句のSELECTステートメントに存在する場合、SELECT句のリストのスキン要素は、グループ全体の単一の値を担当します。 さらに、SELECT命題には、次のタイプの要素のみを含めることができます。フィールド名、 サブバッグ機能、オーバーライドされた要素の組み合わせを含むvirazi定数

SELECT提案リストに入れられたすべてのフィールド名は、GROUPBY句に含まれている必要があります。 サブバッグ機能。 逆のルールは公平ではありません。GROUPBY句には、SELECT命題リストと同じ列名を付けることができます。

いつものように、GROUP BYはWHEREの命題に勝ち、それが最初の命題になり、冗談で心を喜ばせるかのように、グループ化はこれらの行に従います。

SQL標準では、すべての日次値をグループ化した後、等しいと見なされると規定されています。 同じグループ化された列の2行のテーブルにNULL値が含まれ、他のすべての空でないグループ化列に同じ値が含まれている場合、それらは同じグループに配置されます。

例6.9。革の購入者による購入の平均合計を計算します。

SELECT Client.Privacy、Avg(Area.Amount)AS Average_Amount FROM Client INNER JOIN Client ON Client.ClientCode = Avg.ClientId GROUP BY Client.About 例6.9。 スキンバイヤーによる購入の平均義務の計算。

「スキンバイヤー」というフレーズは、SQLアプリケーションで命題を見てその表現を見つけました GROUP BY Client.Prizvische.

例6.10。重要なのは、ヤクスムブロがスキンネームの商品を販売したことです。

SELECT Item.Name、Sum(Item.Price * Product.Quantity)AS Variety FROM Item INNER JOIN Item ON Item.ItemID = Product.ItemID GROUP BY Item.Name 例6.10。 予定、ヤクスムブロは革の名前の商品を販売しました。

SELECT Client.Company、Count(Party.PartyCode)AS Count_Parts FROM Client INNER JOIN Privilege ON Client.ClientCode = Party.ClientID GROUP BY Client.Company 例6.11。 Pіdrahunokkіlkostіugod、zdіysnenihスキンファーム。

SELECT Customer.Company、Sum(Customer.Quantity)AS Global_Quality、Sum(Item.Price * City.Quantity)AS Variant FROM Commodity INNER JOIN(Customer INNER JOIN Customer ON Customer.CustomerCode = Access.CustomerCode.Code)G. Firm 例6.12。 Pіdrahunokzagalnoїkіlkostіは革を購入しましたїfіrmi商品taїїvartostі。

例6.13。 1か月間の皮革製品のsumarnuvartіstを計算します。

SELECT Item.Name、Month(Property.Date)AS Month、Sum(Product.Price * Property.Quantity)AS Variety FROM Item INNER JOIN Item ON Item.ProductID = Property.ProductID GROUP BY Item.Name、Month(Property.Date )))) 例6.13。 革製品のsumarnoїvartostіの任命は革のmіsyatsです。

例6.14。革のミシャットのための最初のアトゥンカの革製品のsumarnuvartіstに感謝します。

SELECT Item.Name、Month(Product.Date)AS Month、Sum(Product.Price * Property。Quantity)AS Variety FROM Item INNER JOIN ItemONItem。 。 名前、月(喜び。日付) 例6.14。 革のミシャットのための最初のアトゥンクの革製品のsumarnoїvartostіの任命。

命題

HAVINGの助けを借りて、データのすべてのブロックがGROUP BYの助けの前に表示され、HAVINGの心を喜ばせます。 Tse dodatkovamozhlivist"profiltruvati"vihіdniynabіr。

Vіdrіznyayutsyaを持っている洗濯はどこでzіdをvіdしました:

  • HAVINGは、集計値の結果からデータグループの結果セットから除外します。
  • WHEREには、心を満たさないレコードをグループ化するための集計値の集計が含まれます。
  • 冗談の心のために、あなたは集約関数を設定することができません。

例6.15。指定会社、それらのいくつかでは、好意の数は3を上回っています。

SELECT Client.Company、Count(Area.Quantity)AS Number of_Areas FROM Customer INNER JOIN Account ON Customer.CustomerCode = Accommodation.CustomerCode GROUP BY Customer.Company HAVING Count(Access.Amount)> 3 例6.15。 企業の任命、yakіmayutzagalnukіlkіstの支持は3つを上回りました。

例6.16。合計10,000kr以上で販売された商品のリストを入力します。

SELECT Product.Name、Sum(Item.Price * Access.Quality)AS Varity FROM Product INNER JOIN Amenity ON Product.Item.Code = Access.ItemId GROUP BY Product.Name HAVING Sum(Item.Price * Access.Quality)> 1000 例6.16。 10,000krb以上で販売された商品のVisnovok転送。

例6.17。合計なしで10,000を超える小売価格で販売された商品のリストを入力します。

SELECT Product.Name FROM Product INNER JOIN Favor ON Product.ProductCode = Product.ProductID GROUP BY Product.Name HAVING Sum(Product.Price * Favorite.Quantity)> 10000 例6.17。 合計なしで10,000を超える合計で販売された商品のリストを表示します。

あなたのチーフアシスタントにあなたは勝つ方法を知っています SUM関数 SQL Server(Transact-SQL)で構文とアプリケーションを使用します。

説明

SQL Server(Transact-SQL)の場合 SUM関数 virazuの全体的な意味を変えてください。

構文

SQL Server(Transact-SQL)のSUM関数の構文は次のとおりです。

ステップの1つまたは複数のデカールの結果をグループ化する場合のSUM関数のABO構文:

パラメータchi引数

expression1、expression2、…expression_nは、SUM関数の前には含まれていませんが、SQL命題の最後のGROUPBY演算子の前に含まれています。
Aggregate_expression-合計されるcestovpetsまたはviraz。
テーブル-レコードを取得する必要があるテーブル。 少なくとも1つのテーブルが原因であり、FROMステートメントで再キャプチャされました。
WHERE条件-非粘性。 Tseウォッシュ、選択したレコードをフォローする方法。

Zastosuvannya

SUM関数は、SQL Serverの将来のバージョン(Transact-SQL)で機能する可能性があります。
SQL Server vNext、SQL Server 2016、SQL Server 2015、SQL Server 2014、SQL Server 2012、SQL Server 2008 R2、SQL Server 2008、SQL Server 2005

1つのフィールドからの例

SQL Server SUM関数を適用する方法を見て、SQL Server(Transact-SQL)でSUM関数を使用する方法を理解しましょう。

たとえば、10を超えるすべての製品の数がどれほど一般的であるかを知ることができます。

このSUM関数とSUM(数量)ウイルス酵素のアプリケーションでは、「TotalQuantity」という仮名が挿入されました。 結果セットをローテーションすると、フィールド名として「合計数量」が表示されます。

バットストックDISTINCT

SUM関数のDISTINCTステートメントをひねることができます。 たとえば、SQLステートメントを下にホバーすると、合計給与額が一意の給与値になり、給与が1レコードあたり29,000ドル未満になります。

ヤクビー2人の給料は24,000ドルになりました。 一方、SUM関数はこれらの値の1つだけを獲得しました。

vikoristanny式の尻

SUM関数の近くにあるVirazは、1つのフィールドでバインドすることはできません。 数式を微調整することもできます。 たとえば、合同委員会を決済することができます。

TransactSQL

SELECT SUM(sales * 0.03)AS "Total Commission" FROMorders;

SELECT SUM(sales * 0.03)AS "Total Commission"

FROM注文;

VicoストックバットストックGROUPBY

場合によっては、SUM関数を使用してGROUPBY演算子を獲得する必要があります。

SQLムービーのSUM関数は、単純さに関係なく、データベースを操作するときに注意が必要なことがよくあります。 Zїїは、DBMSの追加ツールの助けを借りずに、いくつかの中間または中間結果を手動で取得するのに役立ちます。

関数構文

ほとんどのSQLの場合、sumの構文は同じです。引数として、フィールドの名前のみが勝利するか、deacは、合計を実行する必要があるいくつかのフィールドの算術演算です。

vinyatkovyh vipadkahでは、変化の数の観点から特定の意味を伝えることができます。同様の「スキーム」は、実際にはvikoristovuyutsyaではなく、それ自体には大きな価値がありません。 以下は私のSQLの関数の構文です:

合計(a)-ここではパラメータとして

Vartoは、DISTINCTやALLなどのキーワードをパラメーターの前に挿入できることを示しているため、一意の値またはすべての値のみが取得されます。

SQLでのSUMハックバット

仕事と機能の原理をさらに理解するために、アプリケーションの散在を調べる必要があります。 SQL SUMは、結果がローテーションされるときに元に戻すことができるため、中間値の役割で、たとえば、心を再確認します。

皮革製品vrahovyuchiの売上高を回す必要がある場合は、初めてオプションを検討して、購入数を増やすことができます。 otrimannyaにとって、結果は十分なvikonati攻撃的な要求です:

SELECT Item、sum(Purchase Amount)FROM Sales GroupBy Item;

チームによっては、スキンケア製品の購入総額を含むユニークな商品リストがあります。

別のお尻については、売上高がdeak値(たとえば100)を超えた商品のリストを取得する必要があります。このタスクの結果は、dek_lcomaですべての中で最も最適な方法で取得できます。そのうちの:

SELECT Product FROM(SELECT Product、sum(BuyAmount)as Sum FROM Sales)WHERESum>100。

パートナーからリリースされたPCモデルの数をどのように認識しますか? コンピューターで平均値を計算する方法、同じ技術的特性をどのように見つけることができますか? 実際の統計情報に関連する数やその他の栄養に基づいて、あなたは助けのためのアドバイスを受けることができます サブバッグ(集計)関数。 この標準は、次の集計関数を転送します。

すべての関数は同じ値をローテーションします。 どの機能で カウント、最小і MAXその時間に、あらゆるタイプのデータの前にzastosovnі і AVG数値フィールドの場合はvikoristovuyutsyaが少なくなります。 関数間の残差 カウント(*)і カウント(<имя поля>) ファゴットの背後にいる友人はNULL値をあきらめないと思います。

お尻。 パーソナルコンピュータの最低価格と最高価格を確認します。

お尻。 スクライブAによって発行されたコンピューターの実際の数を調べます。

お尻。 Aタイプでリストされているさまざまなモデルの数をどのように判断すれば、攻撃的なランクとして定式化できますか(この事実によると、皮膚モデルは製品テーブルに1回記録されます)。

お尻。 A選択ツールで許可されている現在の異なるモデルの数を知るため。数は前の番号と同様です。この場合、A選択ツールで許可されているモデルの総数を示す必要があります。

統計指標の選択が一意の値のみを獲得するために、 集計関数の引数あなたは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句行をフィルタリングするための述語を定義し、次に 命題停滞 グループ化後値のグループをフィルタリングする述語に類似した指定の場合 集計関数。 この命題は、助けのために取り上げられるため、意味の再検証に必要です。 集計関数サインインしたレコードの数行ではありません からの言葉そのような行のグループ。 したがって、そのような再検証はできません どこ.

©2022androidas.ru-Androidのすべて