1

これはSQL-Server2008用です。列の例を次に示します。

-----------------
|    strings    |
-----------------
|    string1    |
-----------------
|    string2    |
-----------------
|    string3    |
-----------------
|    string4    |
-----------------
|      ...      |
-----------------

「string1」、「string2」、または「string3」以外の文字列の出現数をカウントするクエリは何でしょうか。

4

4 に答える 4

5
SELECT strings, COUNT(*) As Appearances 
FROM tbl
WHERE strings NOT IN('string1', 'string2', 'string3')
GROUP BY strings
于 2012-04-17T22:11:33.380 に答える
2

それはあなたが何を望んでいるのか明確ではありません

「string1」、「string2」、または「string3」以外の文字列の出現数をカウントしますか?

'string1'、'string2'、'string3'以外の文字列の数が必要な場合は、

SELECT COUNT(*) 
FROM Table1
WHERE strings NOT IN('string1', 'string2', 'string3')

ここで動作するのを見てください

'string1'、'string2'、'string3'ではない各文字列のインスタンスの数が必要な場合は、マグナスの答えgroup by stringsのようなものを追加する必要があります

于 2012-04-17T22:18:18.083 に答える
1

これにより、2つの列を持つ結果が生成されます。最初の列には文字列が含まれ、2番目の列にはその文字列のカウントが含まれます。where句を使用して、不要な文字列を除外します。

SELECT strings, COUNT(strings)
FROM table_name
WHERE strings <> 'string1'
GROUP BY strings
于 2012-04-17T22:09:38.360 に答える
0

関係差分演算子を使用します。EXCEPT例:

WITH strings
     AS
     (
      SELECT * 
        FROM (
              VALUES ( 'string1' ), 
                     ( 'string2' ), 
                     ( 'string3' ), 
                     ( 'string4' )
             ) AS T ( string )
     )
SELECT text_value 
  FROM YourTable
EXCEPT
SELECT string
  FROM strings;
于 2012-04-18T07:52:54.120 に答える