2

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

    id     userid     cc    cop    
    1       23        0.5   0.9
    2       23        0.5   0.9
    3       29        2.6   9.4
    4       75        4.8   8.9
    5       29        2.6   9.4
    6       45        6.7   9.0

cc と cop が異なるようなすべてのロールが必要です 1.e 結果は次のようになるはずです

    id     userid     cc    cop    
    1       23        0.5   0.9
    3       29        2.6   9.4
    4       75        4.8   8.9
    6       45        6.7   9.0

私はcc、cop、useridを持つ行が欲しいのですが、同じものだけを選択する必要があります疑似コード:select * from table where userid、cc、copが結果とは異なる。

4

4 に答える 4

2

これにより、レコードがテーブルにどのように保存されたかに関係なく、目的の結果が返されます。

SELECT MIN(ID) ID, userid, cc, cop
FROM   tableName
GROUP  BY userid, cc, cop

その他のソース

于 2013-01-30T11:35:14.477 に答える
2

たぶん、あなたはこのようなことを試すことができます

SELECT MIN(id), userid, cc, cop 
FROM table 
GROUP BY userid, cc, cop;

各オカレンスの最初の ID が選択されます。

于 2013-01-30T11:37:12.403 に答える
1

GROUP BY 句を使用する select ステートメントを使用する必要があります。

SELECT *
FROM Table
GROUP BY userid

各行には少なくとも 1 つの個別の列 (この場合は ID) があるため、これらは個別のエントリとして表示されます。上記のステートメントを使用するか、SELECT ステートメントから「id」列を省略することで、これを回避できます。次に例を示します。

SELECT userid, cc, cop
FROM Table

上記のように id 列のないデータを選択すると、行が完全に重複するため、データは自動的にグループ化されます。

お役に立てれば。

于 2013-01-30T11:43:43.900 に答える
0

group by でこのクエリを試してください

select * from mytable group by userid , cc , cop 
于 2013-01-30T11:36:14.697 に答える