我正在尝试连接两个引用同一个表的查询。我想知道我在时间范围内获得了多少水果,以及有多少水果不新鲜。
查询1
SELECT COUNT(id) FROM fruits
WHERE date>='2017-04-01' AND date<='2017-04-30'
查询2
SELECT COUNT(id) FROM fruits
WHERE fresh='no'
答案 0 :(得分:2)
你可以使用CASE
表达式(注意:我正在解释他们的#34;&#34;在问题中指的是时间范围内的水果,如果你想要水果,那么一般不会结果general删除where子句并将谓词移动到另一个类似的case表达式中)
SELECT COUNT(id),
SUM(CASE WHEN fresh = 'no' THEN 1 ELSE 0 END)
FROM fruits
WHERE date>='2017-04-01' AND date<='2017-04-30'
答案 1 :(得分:0)
我会用:
SELECT COUNT(id) FROM fruits
WHERE date >= '2017-04-01' AND date <= '2017-04-30' AND fresh = 'no';
在查询1和2中,您需要相同的列,并且只想获得两者的交集,因此只需使用&#34; AND&#34;添加到WHERE子句。