日付と価格の一意の組み合わせによる販売記録の更新
このガイドでは、販売テーブル内で一意の価格と日付の組み合わせを持つ販売レコードを識別して更新する方法を説明します。 目的は、同じ価格と日付を共有する重複を排除して、販売エントリのみを更新することです。
1 つの方法には、SQL クエリを使用する 2 段階のプロセスが含まれます。
ステップ 1: 一意の組み合わせを特定する
次のクエリは、一意の saleprice
と saledate
の組み合わせ、および対応する id
と出現回数を選択します。
<code class="language-sql">SELECT DISTINCT saleprice, saledate, id, COUNT(*) AS count FROM sales GROUP BY saleprice, saledate HAVING COUNT(*) = 1;</code>
このクエリは、販売レコードを saleprice
と saledate
でグループ化し、HAVING
を使用して結果をフィルタリングして、一意の組み合わせを示すカウント 1 のグループのみを保持します。
ステップ 2: 売上テーブルの更新
これらの固有の販売レコードの status
を「ACTIVE」に更新するには、次のクエリを使用します。
<code class="language-sql">UPDATE sales SET status = 'ACTIVE' WHERE id IN ( SELECT id FROM sales s INNER JOIN ( SELECT saleprice, saledate FROM sales GROUP BY saleprice, saledate HAVING COUNT(*) = 1 ) AS unique_sales ON s.saleprice = unique_sales.saleprice AND s.saledate = unique_sales.saledate );</code>
このクエリは、sales
テーブルを更新し、status
がサブクエリで識別されたものと一致するレコードの id
を「ACTIVE」に設定します。サブクエリは、一意の id
と saleprice
の組み合わせに関連付けられた saledate
値を効率的に取得します。 INNER JOIN
により、一致するレコードのみが更新されます。
このアプローチでは、GROUP BY
句と HAVING
句の機能を利用して、複数の列にわたって個別の選択を効果的に実行し、目的の更新を実現します。
以上がSales テーブル内の日付と価格の一意の組み合わせで行を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。