SQL複数の列にまたがって重複データがある行を選択します

キエラン

名、姓(複合一意)、および持ち帰り用の選択肢を含むテーブルがある場合、たとえば

+------+-------+---------+
|First | Last  | Food    |
+------+-------+---------+
|Bob   | Smith | Pizza   |
|Bob   | Smith | Chips   |
|Jim   | Smith | Pizza   |
|Lisa  | Jones | Pizza   |
|Lisa  | Jones | Chinese |
|Lisa  | James | Mexican |
|Eric  | White | Chinese |
|Eric  | White | Chips   |
+------+-------+---------+

私は、食べ物を少なくとも2つ好み、そのうちの1つがピザである人々に対応するすべての行が必要です。すなわちの結果

+------+-------+---------+
|First | Last  | Food    |
+------+-------+---------+
|Bob   | Smith | Pizza   |
|Bob   | Smith | Chips   |
|Lisa  | Jones | Pizza   |
|Lisa  | Jones | Chinese |
+------+-------+---------+

count(*)> 1の... group by ...を試してみましたが、希望どおりに機能しません。

助けてくれてありがとう。

フアン・ルイス・デ・カスティーリャ

別の方法:SQL Server2012以降のP。

SELECT FIRST,LAST,FOOD FROM(
SELECT A.FIRST,A.LAST,B.FOOD,
COUNT(*) OVER (PARTITION BY A.FIRST,A.LAST ORDER BY A.FIRST,A.LAST DESC) AS 'POS'
FROM TEST_FOOD A
INNER JOIN TEST_FOOD B
ON A.FIRST = B.FIRST
AND A.LAST = B.LAST
WHERE A.FOOD = 'PIZZA') TB WHERE POS = 2

また、SQL Server 2005+のもう1つのより標準的な方法は、最初の方法の方が高速ですが、MSSQLのバージョンによって制限されます。

SELECT C.FIRST,C.LAST,C.FOOD FROM 
(
SELECT A.FIRST,A.LAST FROM TEST_FOOD A
INNER JOIN TEST_FOOD B
ON A.FIRST = B.FIRST
AND A.LAST = B.LAST
WHERE B.FOOD = 'PIZZA'
GROUP BY A.FIRST,A.LAST
HAVING COUNT(*) = 2
) TB INNER JOIN 
TEST_FOOD C
ON TB.FIRST = C.FIRST
AND TB.LAST = C.LAST

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

選択タグがSQLに重複する行を挿入しています

分類Dev

T-SQL少なくとも1つの列に値がある重複行を選択します

分類Dev

Rの複数の列にcomplete.casesがある行を選択します

分類Dev

データが重複しているテーブルで最小値の行を選択します

分類Dev

SQLは、最大1つの重複がある行のみを選択します

分類Dev

複数の列に同じ値があり、別の値が異なるデータフレームから行を選択します

分類Dev

1列のSQLServerで値が重複している行を選択します

分類Dev

複数の選択肢があるExpandableListViewは、選択したアイテムを配列に保存します

分類Dev

異なる列を使用して複数の行が選択された場合、SelectedItemsは空になります

分類Dev

複数の列に複数の条件があるステートメントを選択します

分類Dev

MySQLは列の行が重複している場合にのみ条件を選択します

分類Dev

行に対してnullである複数の列を選択します

分類Dev

SQL Server:複数の列がある場所を選択します

分類Dev

Rで選択した列によって、行全体で重複する要素を検索します

分類Dev

インデックスが選択されたnumpy配列を、インデックスが重複している別のnumpy配列に追加します

分類Dev

複数または単一のチェックボックスを選択してデータをフィルタリングし、選択せずにすべての結果をangularjsに表示する必要があります

分類Dev

SQL Server:複数の行がある場合、フィールドに基づいて1つの行のみを選択します

分類Dev

VBAの複数の列の選択基準によってデータを転送しますか?

分類Dev

idが複数の範囲にある行を選択します

分類Dev

SQL:別の列で重複が見つかった場合は、最新の日時値を選択します

分類Dev

選択した列に基づいて重複行をフィルタリングし、パンダの別のデータフレームと比較します

分類Dev

隣接するテーブルに他の複数の行がある行を選択します

分類Dev

列の重複に基づいて行を選択します

分類Dev

3列に基づいて同じIDを使用して複数行のデータを選択します

分類Dev

2つの特定の列に重複がある3列のテーブルからすべてのレコードを選択します

分類Dev

Ajax が成功した後、配列/複数選択データをモーダルに配置します。

分類Dev

単一の列(および複数の行)の文字列をSQL Serverの複数の列に分割します(データがありません)

分類Dev

複数の画像が選択されている場合、Laravel同期はピボットテーブルに重複した日付を作成します

分類Dev

複数の結合がある最新の日付に基づいて行を選択します-CodeIgnitor

Related 関連記事

  1. 1

    選択タグがSQLに重複する行を挿入しています

  2. 2

    T-SQL少なくとも1つの列に値がある重複行を選択します

  3. 3

    Rの複数の列にcomplete.casesがある行を選択します

  4. 4

    データが重複しているテーブルで最小値の行を選択します

  5. 5

    SQLは、最大1つの重複がある行のみを選択します

  6. 6

    複数の列に同じ値があり、別の値が異なるデータフレームから行を選択します

  7. 7

    1列のSQLServerで値が重複している行を選択します

  8. 8

    複数の選択肢があるExpandableListViewは、選択したアイテムを配列に保存します

  9. 9

    異なる列を使用して複数の行が選択された場合、SelectedItemsは空になります

  10. 10

    複数の列に複数の条件があるステートメントを選択します

  11. 11

    MySQLは列の行が重複している場合にのみ条件を選択します

  12. 12

    行に対してnullである複数の列を選択します

  13. 13

    SQL Server:複数の列がある場所を選択します

  14. 14

    Rで選択した列によって、行全体で重複する要素を検索します

  15. 15

    インデックスが選択されたnumpy配列を、インデックスが重複している別のnumpy配列に追加します

  16. 16

    複数または単一のチェックボックスを選択してデータをフィルタリングし、選択せずにすべての結果をangularjsに表示する必要があります

  17. 17

    SQL Server:複数の行がある場合、フィールドに基づいて1つの行のみを選択します

  18. 18

    VBAの複数の列の選択基準によってデータを転送しますか?

  19. 19

    idが複数の範囲にある行を選択します

  20. 20

    SQL:別の列で重複が見つかった場合は、最新の日時値を選択します

  21. 21

    選択した列に基づいて重複行をフィルタリングし、パンダの別のデータフレームと比較します

  22. 22

    隣接するテーブルに他の複数の行がある行を選択します

  23. 23

    列の重複に基づいて行を選択します

  24. 24

    3列に基づいて同じIDを使用して複数行のデータを選択します

  25. 25

    2つの特定の列に重複がある3列のテーブルからすべてのレコードを選択します

  26. 26

    Ajax が成功した後、配列/複数選択データをモーダルに配置します。

  27. 27

    単一の列(および複数の行)の文字列をSQL Serverの複数の列に分割します(データがありません)

  28. 28

    複数の画像が選択されている場合、Laravel同期はピボットテーブルに重複した日付を作成します

  29. 29

    複数の結合がある最新の日付に基づいて行を選択します-CodeIgnitor

ホットタグ

アーカイブ