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

SQLite Min()のしくみ

    SQLite min() 関数は、グループ内のすべての値からNULL以外の最小値を返します。

    最小値は、ORDER BYを使用するクエリで最初に表示される値です。 同じ列の句。

    実例を示します。

    SELECT min(Price) FROM Products;

    結果:

    89.27

    これは、そのテーブルのすべての行を返すクエリです。

    SELECT * FROM Products 
    ORDER BY Price;

    結果:

    ProductId   ProductName  Price     
    ----------  -----------  ----------
    5           Red Widget             
    3           Widget Open  89.27     
    4           Foobar Set   120.0     
    2           Widget Hold  139.5     
    1           Blue Widget  389.45    

    最初の行の価格がNULL値であることに注意してください。 min() 関数はそれを無視し、NULL以外の最小値を使用します。

    Min()とCount()を組み合わせる

    min()を組み合わせた例を次に示します。 count()で関数 最小カウントを返す関数。

    SELECT min(AlbumCount) 
    FROM (SELECT ArtistId, count(Title) AS AlbumCount
    FROM Album
    GROUP BY ArtistId);

    結果:

    1       

    これは、ORDER BYを使用して別のクエリを実行することで確認できます。 条項。

    SELECT 
      ar.Name, 
      count(al.Title) AS AlbumCount
    FROM Album al
    INNER JOIN Artist ar
    ON ar.ArtistId = al.ArtistId
    GROUP BY ar.Name
    ORDER BY AlbumCount ASC
    LIMIT 3;

    結果:

    Name                            AlbumCount
    ------------------------------  ----------
    Aaron Copland & London Symphon  1         
    Aaron Goldberg                  1         
    Academy of St. Martin in the F  1         

    Max()およびAvg()と組み合わせる

    max()を追加する別の例を次に示します。 およびavg() ミックスに機能します。

    SELECT 
      min(AlbumCount),
      max(AlbumCount),
      avg(AlbumCount)
    FROM (SELECT ArtistId, count(Title) AS AlbumCount
    FROM Album
    GROUP BY ArtistId);

    結果:

    min(AlbumCount)  max(AlbumCount)  avg(AlbumCount) 
    ---------------  ---------------  ----------------
    1                21               1.70098039215686

    文字列でのMin()の使用

    前述のように、min() ORDER BYを使用して最初に返される値を返します 句(デフォルトの昇順を使用していると仮定)。

    これと同じ概念が文字列にも当てはまります。

    SELECT min(ProductName) FROM Products;

    結果:

    Blue Widgets (6 Pack)

    この結果は、ORDER BYを使用したクエリで確認できます。 条項。

    SELECT * FROM Products 
    ORDER BY ProductName;

    結果:

    ProductId   ProductName            Price     
    ----------  ---------------------  ----------
    1           Blue Widgets (6 Pack)  389.45    
    4           Foobar Set             120.0     
    5           Red Widget                       
    2           Widget Holder          139.5     
    3           Widget Opener          89.27     

    1. select SCOPE_IDENTITY()が整数ではなく小数を返すのはなぜですか?

    2. PL/pgSQLの列名は変数と同じ

    3. データベースインスタンスの状態を監視する方法

    4. プロバイダー名前付きパイププロバイダーエラー40は、SQLServerエラー2への接続を開くことができませんでした