sql >> データベース >  >> RDS >> Sqlserver

SQL ServerのSUM()関数

    SQL Serverでは、SUM() 集計関数は、指定された式の合計を返します。

    また、式内のすべての異なる(一意の)値の合計を返すために使用することもできます。

    SUM() 数値列でのみ機能します。ヌル値は無視されます。

    構文

    構文は次のようになります:

    SUM ( [ ALL | DISTINCT ] expression ) 

    OVERと一緒に使用することもできます 条項:

    SUM ([ ALL ] expression) OVER ( [ partition_by_clause ] order_by_clause)

    Productsというテーブルがあるとします。 次のデータを使用:

    SELECT
        VendorId,
        ProductName,
        ProductPrice
    FROM Products;

    結果:

    +------------+---------------------------------+----------------+
    | VendorId   | ProductName                     | ProductPrice   |
    |------------+---------------------------------+----------------|
    | 1001       | Left handed screwdriver         | 25.99          |
    | 1001       | Long Weight (blue)              | 14.75          |
    | 1001       | Long Weight (green)             | 11.99          |
    | 1002       | Sledge Hammer                   | 33.49          |
    | 1003       | Chainsaw                        | 245.00         |
    | 1003       | Straw Dog Box                   | NULL           |
    | 1004       | Bottomless Coffee Mugs (4 Pack) | 9.99           |
    | 1001       | Right handed screwdriver        | 25.99          |
    +------------+---------------------------------+----------------+

    次のクエリを使用して、すべての価格の合計を取得できます。

    SELECT SUM(ProductPrice)
    FROM Products;

    結果:

    367.20

    ここでは、価格情報はProductPriceに保存されています 列なので、それを引数としてSUM()に渡します。 次に、合計を計算して結果を返す関数。

    ヌル値

    SUM() 関数は、計算を実行するときにnull値を無視します。

    列にNULL値が含まれている場合、NULL値が削除されたことを示す警告が表示される場合があります。

    たとえば、上記の例を実行したときに表示された警告は次のとおりです。

    SELECT SUM(ProductPrice)
    FROM Products;

    結果:

    +--------------------+
    | (No column name)   |
    |--------------------|
    | 367.20             |
    +--------------------+
    Warning: Null value is eliminated by an aggregate or other SET operation.

    フィルタリングされた結果

    SUM() 関数は、クエリによって返された行を操作します。したがって、結果をフィルタリングすると、SUM()の結果になります。 それを反映します。

    SELECT SUM(ProductPrice)
    FROM Products
    WHERE VendorId = 1001;

    結果:

    78.72

    この場合、78.72は、指定されたベンダーが提供するすべての製品の合計です。

    DISTINCT キーワード

    DISTINCTを使用できます SUM()を含むキーワード 個別の値のみを計算します。つまり、重複する値がある場合、それらは1つの値として扱われます。

    例:

    SELECT 
        SUM(ALL ProductPrice) AS "All",
        SUM(DISTINCT ProductPrice) AS "Distinct"
    FROM Products;

    結果:

    +--------+------------+
    | All    | Distinct   |
    |--------+------------|
    | 367.20 | 341.21     |
    +--------+------------+
    Warning: Null value is eliminated by an aggregate or other SET operation.

    私たちのテーブルには、同じ価格の2つのアイテムが含まれています(左ドライバーと右ドライバーの価格はどちらも25.99です)。 DISTINCT キーワードを使用すると、これらの値の両方が1つとして扱われます。

    ウィンドウ関数

    SUM() 関数はOVERで使用できます ウィンドウ関数を作成する句。 SQL SUM()を参照してください 例として初心者向け。


    1. SQL Serverの文字列からHTMLタグを取り除く方法は?

    2. 予期しないクラスター化されたインデックスの断片化

    3. ML{.NET}はじめに

    4. EXCEPTがPostgreSQLでどのように機能するか