ストア商品在庫データを使って、各商品カテゴリごとに在庫数が特定の数以上のものをリストアップするSQLクエリ

この記事では、ストアの商品在庫データを用いて、各商品カテゴリごとに在庫数が特定の数以上の商品だけをリストアップするSQLクエリについて解説します。具体的なSQL文やテーブル構造、コード例を用いて詳しく説明します。

目次

はじめに

在庫管理はビジネスの重要な要素の一つです。効率的な在庫管理には、データベースの活用が欠かせません。本記事ではSQLを用いて、特定の条件に一致する商品の在庫状況を把握する方法を学びます。

サンプルデータの紹介

まずは、使用するサンプルのテーブルデータを紹介します。

ID商品名カテゴリ在庫数
1リンゴフルーツ50
2ミカンフルーツ30
3牛乳飲料20
4コーヒー飲料40
テーブル名称1: 商品在庫テーブル

基本的なSQLクエリ

特定のカテゴリで在庫数が40以上の商品をリストアップする基本的なSQLクエリは以下の通りです。

SELECT * FROM products WHERE category = 'フルーツ' AND stock >= 40;

各商品カテゴリごとに在庫数をフィルター

GROUP BYとHAVINGを使う

特定の在庫数以上の商品を各カテゴリごとにリストアップするには、`GROUP BY`と`HAVING`を使います。

SELECT category, COUNT(*) 
FROM products 
GROUP BY category 
HAVING SUM(stock) >= 40;

このクエリは、各カテゴリごとに在庫数が40以上の商品数をカウントします。

サブクエリを使う

別の方法としてサブクエリを使うこともできます。

SELECT * FROM products 
WHERE category IN 
    (SELECT category FROM products GROUP BY category HAVING SUM(stock) >= 40);

実用的なクエリ例

実際の業務で使えるようなクエリも考えてみましょう。

特定の在庫数以上の商品とその平均価格

SELECT category, AVG(price) 
FROM products 
WHERE stock >= 40 
GROUP BY category;

このクエリでは、在庫数が40以上の各カテゴリの商品の平均価格を求めます。

まとめ

この記事では、ストアの商品在庫データを用いて、特定の在庫数以上の商品をカテゴリごとにリストアップする方法を学びました。基本的なSQLクエリから応用例まで、幅広く解説しました。

コメント

コメントする

目次