3

SQL初心者。親切に助けてください。

複数のパターンについて、フィールドの1つにパターンを持つレコードの数を数える必要があります。1 つのパターンに対してそれを行う方法は知っていますが、サブクエリから複数のパターンがある場合、各パターンのカウントを取得するにはどうすればよいですか。オラクルを使用しています。例を挙げて説明しようと思います。

SELECT count(*) FROM TableA
WHERE 
TableA.comment LIKE '%world%';

このコードは、TableA.comment フィールドのどこかに「world」があるレコードの数を返します。私の状況では、「世界」のようなパターンのリストを返す 2 番目のクエリがあります。各パターンのカウントを取得するにはどうすればよいですか?

私の最終結果は、最初の列パターン、2 番目の列 count_of_pattern の 2 列だけになるはずです。

4

1 に答える 1

10

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;

patternこれは、 にワイルドカード文字がないことを前提としています。その場合、連結を行う必要はありません。

これも a を使用してleft outer join、一致しなくてもすべてのパターンが返されるようにします。

于 2013-08-05T02:27:13.127 に答える