MySQLで重複レコードを見つける方法はありますが、ある程度のばらつきがありますか?

ブライス・マセソン:

次のテーブル構造とデータがあるとします。

+------------------+-------------------------+--------+
| transaction_date | transaction_description | amount |
+------------------+-------------------------+--------+
| 2020-08-20       | Burger King             |  10.06 |
| 2020-08-23       | Burger King             |  10.06 |
| 2020-08-29       | McDonalds               |   6.48 |
| 2020-09-04       | Wendy's                 |   7.45 |
| 2020-09-05       | Dairy Queen             |  14.36 |
| 2020-09-06       | Wendy's                 |   7.45 |
| 2020-09-13       | Burger King             |  10.06 |
+------------------+-------------------------+--------+

説明と金額が一致する重複したトランザクションを見つけたいのですが、日付には多少の変動があります+/- 3日間。

「バーガーキング」のトランザクションは互いに3日以​​内(2020-08-20および2020-08-23)であるため、重複としてカウントされますが、2020-09-13のエントリはカウントされません。

これまでに次のクエリがありますが、分散の度合いの部分が私を困らせています。

SELECT t.transaction_date, t.transaction_description, t.amount
FROM transactions t
JOIN (SELECT transaction_date, transaction_description, amount, COUNT(*)
FROM transactions
GROUP BY transaction_description, amount
HAVING count(*) > 1 ) b
ON t.transaction_description = b.transaction_description
AND t.amount = b.amount
ORDER BY t.amount ASC;

理想的には、出力が次のようなものになるようにしたいです。

+------------------+-------------------------+--------+
| transaction_date | transaction_description | amount |
+------------------+-------------------------+--------+
| 2020-08-20       | Burger King             |  10.06 |
| 2020-08-23       | Burger King             |  10.06 |
| 2020-09-04       | Wendy's                 |   7.45 |
| 2020-09-06       | Wendy's                 |   7.45 |
+------------------+-------------------------+--------+

私は道を外れていますか?それともこれは可能ですか?前もって感謝します。

GMB:

使用できますexists

select t.*
from mytable t
where exists (
    select 1
    from mytable t1
    where 
        t1.transaction_description = t.transaction_description
        and t1.transaction_date <> t.transaction_date 
        and t1.transaction_date >= t. transaction_date - interval 3 day
        and t1.transaction_date <= t. transaction_date + interval 3 day

MySQL 8.0を実行している場合、ウィンドウの日付範囲内のカウントが妥当な代替手段です。

select t.*
from (
    select t.*,
        count(*) over(
            partition by transaction_description
            order by transaction_date
            range between interval 3 day preceding and interval 3 day following 
        ) cnt
    from mytable t
) t
where cnt > 1

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

レコードの挿入中にmysqlで重複する値を見つける方法はありますか?

分類Dev

テーブルから重複レコードを見つけて削除する必要があります

分類Dev

パンダの2つの列でデータ重複排除を見つける方法はありますか?

分類Dev

SparkSQLで複合キーの最新レコードを見つける必要があります

分類Dev

SELECT * FROMWHEREがすべてのレコードを見つけるわけではありません

分類Dev

単一のクエリを使用して、テーブル内のレコードと重複を見つける方法はありますか?

分類Dev

2つの割引コードがありますが、適用できるのは1つだけですか?

分類Dev

塩基間で数値を変換する私のPythonコードには、いくつかのエラーがあります。何が間違っている可能性があり、どうすればそれらを見つけることができますか?

分類Dev

アセンブラのソースコードをすばやく見つける方法はありますか?

分類Dev

LINQ-既存または作成されたレコードのIDを見つける必要があります

分類Dev

ラインコードが実行されている場所を見つける方法はありますか?

分類Dev

VSCodeの「DefaultHighContrast」テーマのすべての16進コードの色の値を見つけることができる場所はありますか?

分類Dev

Unityマルチプレイヤーでどのプレイヤーがホストであるかを見つける方法はありますか?

分類Dev

Firestoreのフィールドですでに価値があるかどうかを見つける方法はありますか?

分類Dev

AWKを見つけて置き換える方法はありますが、前後の文字が英数字の場合はそうではありませんか?

分類Dev

mysqlで同じ列の行を見つける方法はありますか

分類Dev

どのiptablesルールがパケットのドロップの原因であるかを見つける方法はありますか?

分類Dev

次のHTMLコードの要素を見つけるためのより良い方法はありますか?

分類Dev

コードの戻り値がconst参照であるのを助ける方法はありますか?

分類Dev

あるコレクションから別のコレクションに1つのフィールドを参照しています。しかし、重複がある場合は常に、返される配列は異なります

分類Dev

ほぼ重複している、つまり2エントリ未満の違いがあるデータフレームの行数を見つける方法は?

分類Dev

変更が1つの引数型のみである場合は、コードの重複を避けます

分類Dev

Symfonyの設定で〜が意味するものを見つける方法はありますか?

分類Dev

利用可能な場合はノードの子を見つける必要があるPython辞書があります

分類Dev

大きなクエリSQL:同じ一意のキーを使用して訪問内の重複の異なるセットを見つける方法はありますが、訪問の期間は異なりますか?

分類Dev

配列がコピーされるすべての場所をC#コードで見つけるツールはありますか

分類Dev

VarDeclの関数を見つける方法はありますか?

分類Dev

Pythonの文字列からキーワードを見つける方法はありますか?

分類Dev

どの親がパーセンテージサイズで参照されているかをすばやく見つける方法はありますか?

Related 関連記事

  1. 1

    レコードの挿入中にmysqlで重複する値を見つける方法はありますか?

  2. 2

    テーブルから重複レコードを見つけて削除する必要があります

  3. 3

    パンダの2つの列でデータ重複排除を見つける方法はありますか?

  4. 4

    SparkSQLで複合キーの最新レコードを見つける必要があります

  5. 5

    SELECT * FROMWHEREがすべてのレコードを見つけるわけではありません

  6. 6

    単一のクエリを使用して、テーブル内のレコードと重複を見つける方法はありますか?

  7. 7

    2つの割引コードがありますが、適用できるのは1つだけですか?

  8. 8

    塩基間で数値を変換する私のPythonコードには、いくつかのエラーがあります。何が間違っている可能性があり、どうすればそれらを見つけることができますか?

  9. 9

    アセンブラのソースコードをすばやく見つける方法はありますか?

  10. 10

    LINQ-既存または作成されたレコードのIDを見つける必要があります

  11. 11

    ラインコードが実行されている場所を見つける方法はありますか?

  12. 12

    VSCodeの「DefaultHighContrast」テーマのすべての16進コードの色の値を見つけることができる場所はありますか?

  13. 13

    Unityマルチプレイヤーでどのプレイヤーがホストであるかを見つける方法はありますか?

  14. 14

    Firestoreのフィールドですでに価値があるかどうかを見つける方法はありますか?

  15. 15

    AWKを見つけて置き換える方法はありますが、前後の文字が英数字の場合はそうではありませんか?

  16. 16

    mysqlで同じ列の行を見つける方法はありますか

  17. 17

    どのiptablesルールがパケットのドロップの原因であるかを見つける方法はありますか?

  18. 18

    次のHTMLコードの要素を見つけるためのより良い方法はありますか?

  19. 19

    コードの戻り値がconst参照であるのを助ける方法はありますか?

  20. 20

    あるコレクションから別のコレクションに1つのフィールドを参照しています。しかし、重複がある場合は常に、返される配列は異なります

  21. 21

    ほぼ重複している、つまり2エントリ未満の違いがあるデータフレームの行数を見つける方法は?

  22. 22

    変更が1つの引数型のみである場合は、コードの重複を避けます

  23. 23

    Symfonyの設定で〜が意味するものを見つける方法はありますか?

  24. 24

    利用可能な場合はノードの子を見つける必要があるPython辞書があります

  25. 25

    大きなクエリSQL:同じ一意のキーを使用して訪問内の重複の異なるセットを見つける方法はありますが、訪問の期間は異なりますか?

  26. 26

    配列がコピーされるすべての場所をC#コードで見つけるツールはありますか

  27. 27

    VarDeclの関数を見つける方法はありますか?

  28. 28

    Pythonの文字列からキーワードを見つける方法はありますか?

  29. 29

    どの親がパーセンテージサイズで参照されているかをすばやく見つける方法はありますか?

ホットタグ

アーカイブ