犬の食事履歴をPostgreSQLで管理している場合、特定の食材に対する嗜好や摂取傾向を分析することが可能です。本記事では、SQLクエリを使った集計・傾向分析の方法を具体例とともに解説します。
食事履歴テーブルの設計例
まず、食事履歴を管理するテーブル例です。基本的には犬ID、食材名、摂取量、日時などを保持します。
例:
CREATE TABLE food_history (
dog_id SERIAL,
food_name TEXT,
amount NUMERIC,
eaten_at TIMESTAMP
);
特定食材の摂取回数を集計
食材ごとの摂取傾向を調べるにはGROUP BYを使用して集計します。例えば、犬ごとに「ささみ」の摂取回数を確認する場合。
SELECT dog_id, COUNT(*) AS times_eaten
FROM food_history
WHERE food_name = ‘ささみ’
GROUP BY dog_id
ORDER BY times_eaten DESC;
これにより、各犬が特定の食材をどれだけ摂取したかを簡単に把握できます。
食材の総摂取量を分析
摂取量の傾向を確認したい場合はSUM関数を使用します。例えば、犬ごとに各食材の総摂取量を算出するには。
SELECT dog_id, food_name, SUM(amount) AS total_amount
FROM food_history
GROUP BY dog_id, food_name
ORDER BY dog_id, total_amount DESC;
これにより、どの犬がどの食材を多く食べているかがわかります。
期間を指定した傾向分析
日時でフィルタリングして、特定期間の傾向を分析することも可能です。
例:過去1か月の食材摂取量
SELECT dog_id, food_name, SUM(amount) AS total_amount
FROM food_history
WHERE eaten_at >= NOW() – INTERVAL ‘1 month’
GROUP BY dog_id, food_name
ORDER BY total_amount DESC;
まとめ
PostgreSQLではGROUP BYやSUM、COUNTなどの集計関数を活用することで、犬ごとの食材摂取回数や摂取量を分析可能です。期間指定や食材フィルタを組み合わせることで、特定の食材に対する傾向を効率的に把握できます。


コメント