以下のようなテーブルがあります。
CREATE TABLE budgets(limit_id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,
upper_limit INT,
lower_limit INT);
表の値は次のとおりです。
INSERT INTO budgets(lower_limit, upper_limit)
VALUES(0, 15000),
(10200, 15300),
(15200, 17002),
(30000, 45050),
(17002, 30000),
(27002, 30500),
(30500, 35200),
(45200, 55000),
(55000, 65020),
(25000, 30000),
(40000, 60000),
(65000, 75000);
以下のように選択クエリを使用して値を取得しました
SELECT 'Betw 0 to 25000', COUNT(limit_id)
FROM budgets
WHERE lower_limit>=0 AND upper_limit<=25000
UNION ALL
SELECT 'Betw 25000 to 50000', COUNT(limit_id)
FROM budgets
WHERE lower_limit>=25000 AND upper_limit<=50000
UNION ALL
SELECT 'Betw 50000 to 75000',COUNT(limit_id)
FROM budgets
WHERE lower_limit >=50000 AND upper_limit<=75000
上記の制限範囲内ですべての行を説明できるようにしたい。
テーブルには 12 個のレコードがあります。
すべてのレコードをいずれかの範囲カテゴリに分類したいのですが、クエリを実行すると、特定の条件下で 9 行しか取得できません。
出力は
Between 0 to 25000 3
Between 25000 to 50000 4
Between 50000 to 75000 2
残りの 3 つのレコードは、いずれの範囲にも該当しません。
DB の設計を間違えたのか、それとも上記の要件に対して間違ったクエリを書いているのか教えてください。