带括号的SQL问题

Ale*_*Ale 0 sql oracle parentheses

我在处理此查询时遇到错误:

SELECT *
FROM example
WHERE pri IN (
    SELECT pri
    FROM (
        SELECT pri
            ,sbst
            ,st
            ,count(*) AS cnt
        FROM example
        WHERE sbst = 'oi'
        GROUP BY pri
        ) AS tmp
    WHERE cnt = 1
        AND st = 'ko'
    )
AND sbst = 'cp';
Run Code Online (Sandbox Code Playgroud)

错误如下:

ORA-00907:缺少右括号00907. 00000 - "缺少右括号"*原因:
*操作:行错误:5列:136

但我不认为我错过了一个括号.

Gia*_*los 5

可能你需要GROUP BY pri,sbst,st

SELECT * 
from example 
WHERE pri IN 
(
    SELECT pri 
    FROM 
    (
        SELECT  pri, 
                sbst, 
                st, 
                count(*) AS cnt 
        FROM example 
        WHERE sbst = 'oi' 
        GROUP BY pri, 
                 sbst, 
                 st
    ) tmp 
    WHERE cnt = 1 AND st = 'ko'
) AND sbst = 'cp';
Run Code Online (Sandbox Code Playgroud)