SQL需要以下用例

SQL需要以下用例,sql,postgresql,Sql,Postgresql,查询应返回- CREATE TABLE dipti_test.opinions ( id INTEGER NOT NULL, place VARCHAR(255), opinion VARCHAR(255) ); insert into dipti_test.opinions values (1, 'mount nawo oz', 'recommended'); insert into dipti_test.opinions values (2, 'mount nawo oz'

查询应返回-

CREATE TABLE dipti_test.opinions (
  id INTEGER NOT NULL,  
  place VARCHAR(255),
  opinion VARCHAR(255)
);

insert into dipti_test.opinions values (1, 'mount nawo oz', 'recommended');
insert into dipti_test.opinions values (2, 'mount nawo oz', 'not recommended');
insert into dipti_test.opinions values (3, 'codility', 'recommended');
insert into dipti_test.opinions values (4, 'codility', 'recommended');
insert into dipti_test.opinions values (5, 'codility', 'recommended'); 
insert into dipti_test.opinions values (6, 'qr week', 'recommended');
insert into dipti_test.opinions values (7, 'qr week', 'not recommended');
insert into dipti_test.opinions values (8, 'cafe worst', 'not recommended'); 
insert into dipti_test.opinions values (9, 'mount nawo oz', 'recommended');

我认为您正在寻找以下查询:

     place
   ---------------
    codility
    mount nawo oz

按分组。使用
HAVING
仅返回推荐多于不推荐的位置:

    select distinct place
    from opinions 
    group by place
    having sum(case when opinion = 'recommended' then 1
       end) > 0

也推荐qr周。地点------------------科迪莉斯纳沃山奥兹qrweek@diptiranjanpradhan,你能解释一下吗?推荐的地方不止这些recommended@diptiranjanpradhan . . . 你已经接受了一个答案,这个答案产生的结果与问题所问的不同。这看起来真的很奇怪,尤其是当有另一个答案是正确的时候。描述一下你为什么想要那个结果。@diptiranjanpradhan。这个答案实际上是正确的,应该被接受。
select place
from dipti_test.opinions 
group by place
having sum(case when opinion = 'recommended' then 1
                when opinion = 'not recommended' then -1
           end) > 0