特定の列のすべての値の平均を計算する必要がある状況があります。機能するこのSQLステートメントを取得しました:
SELECT SUM(`unitCost`)/COUNT(*)
FROM `items`
WHERE `itemID_FK`=%d
これをより効率的にする方法についての情報を探しています。このクエリにより、多数のレコードを読み取る必要が生じる可能性があります。
itemID_FK
別のテーブルで平均値を維持し、レコードがテーブルに追加されるたびに平均値を更新し続ける方が効率的かどうか疑問に思っていましたitems
か?
データベース内の他の列またはテーブルから計算または派生できる列を持つことは、データベース設計の原則に反することをどこかで読みました。
編集:
列:
instanceID int(10) UN PK AI
userID_FK int(11) UN
itemID_FK int(11) UN
dateAdded date
datePurchased date
listID_FK int(11) UN
unitCost decimal(11,2) UN zerofill
quantity decimal(11,2) UN zerofill
unitID_FK int(10) UN