假设我有一个简单的SQL表:http://sqlfiddle.com/#!2/ce3fd/2/0
CREATE TABLE Trends
(Country varchar(250),
CTR int);
INSERT INTO Trends (Country, CTR)
VALUES ('America', 5),
('America', 10),
('America', 12),
('America', 40),
('England', 10),
('England', 410),
('England', 310),
('England', 210);
我想设置一个条件
A)测试每个国家 B)仅当该国家/地区的所有价值的点击率高于10
时才返回该国家/地区例如,在此表中,“美国”不会被返回,因为它的点击率低于10.英格兰将被退回,因为所有点击率都高于10。
我会在这里使用CASE项目吗?
答案 0 :(得分:3)
听起来你可以使用两部分WHERE子句,一部分将测试那些ctr >= 10
的人和那些不存在ctr < 10
以及以下部分应该有效的国家:< / p>
SELECT country, ctr
FROM Trends
WHERE ctr >= 10
and country not in (select country
from trends
where ctr < 10);
答案 1 :(得分:1)
您可以使用以下命令来避免子查询:
SELECT Country
FROM Trends
GROUP BY Country
HAVING MIN(CTR) >= 10