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

count(*)列のmin()を取得する

    テストするオラクルステーションはありませんが、SELECTの周りにアグリゲーターをラップするだけでよいはずです。 サブクエリ/派生テーブル/インラインビューとして

    したがって、(テストされていません!!)

    SELECT 
        AVG(s.c)
        , MIN(s.c)
        , MAX(s.c)
        , s.ID
    FROM
        --Note this is just your query
        (select id, to_char(time), count(*) as c from vehicle_location group by id, to_char(time), min having id = 16) as s
    GROUP BY s.ID
    


    http://www.devshed.com/c/a/Oracle/Inserting-SubQueries-in-SELECT-Statements-in-Oracle/3/

    編集: 通常は悪いですが 両方を選択するアイデア MIN およびMAX 単一のクエリで。

    編集2: 最小/最大の問題は、一部のRDBMS(oracleを含む)がインデックス付き列の集計を処理する方法に関連しています。この特定のクエリには影響しないかもしれませんが、インデックスを使用してMINを見つけるのは簡単であることが前提です。 または MAX ただし、インデックスが効果的に使用されない可能性があるため、両方を同時に使用することはできません。
    ここにいくつかの読み物があります:
    http://momendba.blogspot.com/2008/07/min-and-max-functions-in-single-query.html




    1. MySQLは最大値を返すか、1つの列に値がない場合はnullを返します

    2. PythonでのMongoEngineによるインデックス作成の処理

    3. 変数VB.NETに入れられたmysqlから選択します

    4. MySQLで四半期の最初の日付を取得するにはどうすればよいですか?