我有两张桌子TypeOfFruit和Fruit(有一个TypeOfFruit的FK),如下所示:
TypeOfFruit
ID Name
1 Apples
2 Bananas
水果
ID TypeId Expired
1 1 FALSE
2 1 TRUE
3 1 TRUE
基本上我想创建一个包含以下内容的视图:
FruitStats
Name total_num total_expired
Apples 3 2
Bananas 0 0
第一个数字是每种水果的总数,第二个数字是该类型的过期水果数。
我已经拿出以下内容来获取total_num:
CREATE VIEW Fruit_Stats (name, total_num)
AS SELECT t.name, COUNT(f.id)
FROM TypeOfFruits t LEFT OUTER JOIN Fruits f ON f.type_id = t.id GROUP BY (t.id);
但是除了那个之外我在计算过期时遇到了麻烦。任何帮助将不胜感激!
答案 0 :(得分:0)
你很亲密。 CASE
语句将为您提供所需内容:
SELECT t.name, COUNT(f.id), SUM(CASE WHEN expired = "TRUE" THEN 1 ELSE 0 END) as total_expired
FROM TypeOfFruits t LEFT OUTER JOIN Fruits f ON f.type_id = t.id GROUP BY (t.id);