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

SQLite Sum()で個別の値だけを追加する方法

    SQLiteでは、Sum() 関数はオプションのDISTINCTを受け入れます グループ内の個別の値のみを追加できるキーワード。つまり、計算から重複を削除します。

    したがって、たとえば10を含む3つの行がある場合、それらの行の1つだけが結果に含まれます。

    構文

    DISTINCTを使用する場合の構文 キーワードは次のようになります:

    Sum(DISTINCT X)

    ここでX 値を追加する列の名前です。

    Productsという次の表について考えてみます。 :

    ProductId   ProductName    Price     
    ----------  -------------  ----------
    1           Widget Holder  139.5     
    2           Blue Widget    10.0      
    3           Red Widget     10.0      
    4           Green Widget   10.0      
    5           Widget Stick   89.75     
    6           Foo Cap        11.99     

    以下は、すべての価格の明確な合計を取得する例です。

    SELECT Sum(DISTINCT Price) 
    FROM Products;

    結果:

    251.24

    ここでも同じですが、今回は「明確でない」sum()も含めます。 比較のために。

    SELECT 
      Sum(Price),
      Sum(DISTINCT Price) 
    FROM Products;

    結果:

    Sum(Price)  Sum(DISTINCT Price)
    ----------  -------------------
    271.24      251.24             

    したがって、不明瞭なsum(Price) 重複に関係なく、すべての値を追加しました。ただし、sum(DISTINCT Price) 個別の値のみを追加しました。


    1. SQLServerの文字列またはバイナリデータは切り捨てられます

    2. 10進数のデータ型(MySQL / Postgres)を使用するとパフォーマンスが低下しますか?

    3. ClusterControl1.8.2でPostgreSQL用のPgBouncer接続プールを使用する

    4. Oracle.DataAccessが機能するのにOracle.ManagedDataAccessが機能しないのはなぜですか。