SQL中的条件

时间:2013-06-24 18:40:24

标签: sql conditional

假设我有一个简单的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项目吗?

2 个答案:

答案 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);

请参阅SQL Fiddle with Demo

答案 1 :(得分:1)

您可以使用以下命令来避免子查询:

SELECT Country
FROM Trends
GROUP BY Country
HAVING MIN(CTR) >= 10