1

このクエリを実行すると、

select * from table;

以下を返します

|branch | number |
-------------------
|  1    |  123   |
|  1    |  001   |
|  2    |  123   |
|  3    |  123   |
|  4    |  123   |
|  1    |  123   |
|  1    |  789   |
|  2    |  123   |
|  3    |  123   |
|  4    |  009   |

ブランチ 1 だけに固有の値を見つけたい

|  1    |  001   |
|  1    |  789   |

データを別のテーブルに保存せずにこれを行うことはできますか? 「個別の選択」クエリをいくつか試しましたが、期待した結果が得られないようです。

4

5 に答える 5

2
SELECT branch, number
FROM table
WHERE branch = 1
GROUP BY branch, number
于 2013-03-27T19:01:41.767 に答える
2

集計が必要ない場合は、distinct代わりにgroup by次を使用できます。

select  distinct branch
,       number
from    YourTable
where   branch = 1
于 2013-03-27T19:02:33.433 に答える
1

私が言おうとしているのは、ブランチ 1 のみに固有のすべての番号を見つけたいということだと思います。それらが他のブランチで見つかった場合、それらを見たくありません。

これはあなたが望むものだと思います。

SELECT distinct number
FROM MyTable
WHERE branch=1 and number not in 
( SELECT distinct number
FROM MyTable
WHERE branch != 1 )
于 2013-03-27T19:33:39.560 に答える
0

number列内で一意で値が 1 のすべての値を選択するにbranchは、次のコードを使用できます。

SELECT branch, number
FROM table1
WHERE number IN (
 SELECT number
 FROM table1
 GROUP BY number 
 HAVING (COUNT(number ) = 1)
)
AND branch = 1

デモについては、http://sqlfiddle.com/#! 2/97145/62 を参照してください。

于 2013-03-27T19:44:31.103 に答える
0

これを試して:

SELECT branch, number
FROM table
GROUP BY branch, number

これはあなたが見るためのSQLFiddleです

ブランチ 1 のみに制限する場合は、where 句を追加するだけです。

SELECT branch, number
FROM table
WHERE branch = 1
GROUP BY branch, number
于 2013-03-27T19:01:31.013 に答える