1

次のようなテーブルがあります。

column_a  column_b
  foo        1
  bar        1
  bar        2
  baz        4

に一意のフィールド値を持つすべての行を含む次の結果が必要ですcolumn_b

  bar        2
  baz        4

foo(0) とbar(1) の値はどちらもcolumn_b'1' であるため、'1' は一意ではありません。一意の を持つすべての行をフィルタリングする MySQL-Expression はありますcolumn_bか?

多分そのようなもの:

select * from table where isunique(column_b)

さらに: DISTINCT!のようなものは必要ありません。

編集(解決済み):

YaK と jcho360 のおかげで、これが解決策です。

select column_a, column_b from table group by column_b having count(column_b) = 1

また

select column_a, column_b, COUNT(1) AS total from table group by column_b having total = 1

(thx to andrewtweber)

4

3 に答える 3

4

count関数を使用すると、column_bの値が1回だけ発生する選択が提供されます。これを試して:

select * from table group by (column_b) having count(column_b) = 1;
于 2012-06-13T17:43:30.043 に答える
3
SELECT column_a, column_b, COUNT(1) AS total
FROM table
GROUP BY column_b
HAVING total = 1

私はそれがうまくいくはずだと信じています。これにより、すべてのcolumn_bがグループ化され、その特定の値を持つものがいくつあるかがカウントされ、結果セットが一意のcolumn_b値を持つものに制限されます。

于 2012-06-13T17:47:08.180 に答える
-1

select unique(column_b), column_a, from table代わりに試してみませんか?:)

修正のタイプミスを編集する

于 2012-06-13T17:43:50.410 に答える