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

インデックス付きビューにMAX()集計を含めることができないのはなぜですか?

    これらの集計は、変更された値のみに基づいて再計算できないため、許可されていません。

    COUNT_BIG()などの一部の集計 またはSUM() 、変更されたデータを確認するだけで再計算できます。基になる値が変更された場合、その変更の影響を直接計算できるため、これらはインデックス付きビュー内で許可されます。

    MIN()などの他の集計 およびMAX() 、変更中のデータを見ただけでは再計算できません。現在の最大値または最小値を削除する場合は、新しい最大値または最小値を検索して、全体で見つける必要があります。 テーブル。

    同じ原則が、AVG()などの他の集計にも適用されます。 または標準のバリエーション集計。 SQLは、変更された値だけからそれらを再計算することはできませんが、新しい値を取得するには、テーブル全体を再スキャンする必要があります。



    1. MySQLの日付と時刻の関数は存在しません

    2. 誤った文字列値エラーを修正する方法は?

    3. SQL以外

    4. Laravel:whereInメソッドを使用してカスタムソートされた雄弁なコレクションを取得する方法