use*_*135 2 oracle subquery sql-like
新手到SQL.请帮助.
对于多种模式,我需要计算其中一个字段中具有模式的记录数.我知道如何为一个模式执行此操作,但是当子查询中存在多个模式时,如何获取每个模式的计数.我正在使用Oracle.我将尝试用一个例子来解释.
SELECT count(*) FROM TableA
WHERE
TableA.comment LIKE '%world%';
Run Code Online (Sandbox Code Playgroud)
现在,此代码将返回TableA.comment字段中任何位置具有"world"的记录数.我的情况是,我有一个第二个查询,它返回了一个像'world'这样的模式列表.我如何获得每个模式的计数?
我的最终结果应该是2列,第一列模式,第二列count_of_pattern.
您可以使用like将子查询加入表:
SELECT p.pattern, count(a.comment)
FROM (subquery here that returns "pattern"
) p left outer join
TableA a
on a.comment like '%'||p.pattern||'%'
group by p.pattern;
Run Code Online (Sandbox Code Playgroud)
这假设pattern没有通配符.如果是,那么您不需要进行连接.
这也使用了一个left outer join,即使没有匹配也会返回所有模式.
| 归档时间: |
|
| 查看次数: |
10523 次 |
| 最近记录: |