0

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

+-------------+----------+---------------+------------+
| Contract_ID |   Name   |   Username    |  Password  |
+-------------+----------+---------------+------------+
|    12345671 | Facebook | john.doe      | password   |
|    12345672 | Google   | john.doe      | password   |
|    12345673 | Apple    | martha.malone | doodlebear |
|    12345674 | Samsung  | jimmy47       | parkour445 |
|    12345675 | HTC      | rick.grimes   | simpsons33 |
+-------------+----------+---------------+------------+

ユーザー名とパスワードの組み合わせと契約 ID の比率が 1 対 1 であるレコードのみを選択したいと考えています。この場合、このテーブルの 3 番目、4 番目、5 番目のレコードを選択したいということです。

DISTINCT キーワードのさまざまな組み合わせを試しましたが、正しいルートではないようです。この情報を返すことができるクエリはありますか?

おまけの質問として、反対の結果を生成できるクエリはありますか (つまり、契約 ID とユーザー名/パスワードの組み合わせの比率が 1 対 1 を超えるレコードのみ)?

4

3 に答える 3

3

GROUP BY 句は HAVING 句と一緒に使用する必要があります。次に例を示します。

SELECT Username, Password FROM Table
GROUP BY Username, Password
HAVING COUNT(*) = 1

反対は次のとおりです。

SELECT Username, Password FROM Table
GROUP BY Username, Password
HAVING COUNT(*) > 1
于 2013-08-15T14:08:11.657 に答える
0

それを行う非常にいたずらな方法で、まったく良くありませんが、機能します:

    select distinct
    least(col1, col2) as value1
  , greatest(col1, col2) as value2
from yourtable
于 2013-08-15T14:08:38.737 に答える
0

グループ化 (名前、パスワード) が機能しませんか?

于 2013-08-15T14:06:04.283 に答える