2012-09-19 70 views
0

我无法识别此查询的语法错误,哪里的语法错误?postgresql语法错误?

select c_name, c_address, c_mktsegment , count(*) as cnt customer join orders on c_custkey=o_custkey 
where 
(c_name like %r% AND c_address like %a%) OR c_mktsegment like ='%t%' 
group by c_name, c_address, c_mktsegment having count(*)>2; 
+0

没有'FROM'子句?加入? –

回答

4

一个错误是你必须在这里失去了报价:

(c_name like %r% AND c_address like %a%) 

应该是:

(c_name like '%r%' AND c_address like '%a%') 

在评论中提到的另一个问题是你错过了FROM关键字:

select c_name, c_address, c_mktsegment , count(*) as cnt customer 

应该是:

SELECT c_name, c_address, c_mktsegment , count(*) as cnt 
FROM customer 

还可能有其他错误。但你可以肯定,这两个问题实际上是问题,他们需要修复。我强烈建议您在进一步调查任何其他问题之前解决它们。

+0

即时得到sintax错误“SQL状态:42601字符:58” – user1642762

0

我在马克拜尔斯给出的答案将一件事是,

你不能使用=与像运营商

所以你必须用来替换OR c_mktsegment like ='%t%OR c_mktsegment like '%t%'