ホームページ > データベース > mysql チュートリアル > Sales テーブル内の日付と価格の一意の組み合わせで行を更新するにはどうすればよいですか?

Sales テーブル内の日付と価格の一意の組み合わせで行を更新するにはどうすればよいですか?

Susan Sarandon
リリース: 2025-01-23 05:52:08
オリジナル
1020 人が閲覧しました

How to Update Rows with Unique Date-Price Combinations in a Sales Table?

日付と価格の一意の組み合わせによる販売記録の更新

このガイドでは、販売テーブル内で一意の価格と日付の組み合わせを持つ販売レコードを識別して更新する方法を説明します。 目的は、同じ価格と日付を共有する重複を排除して、販売エントリのみを更新することです。

1 つの方法には、SQL クエリを使用する 2 段階のプロセスが含まれます。

ステップ 1: 一意の組み合わせを特定する

次のクエリは、一意の salepricesaledate の組み合わせ、および対応する id と出現回数を選択します。

<code class="language-sql">SELECT DISTINCT saleprice, saledate, id, COUNT(*) AS count
FROM sales
GROUP BY saleprice, saledate
HAVING COUNT(*) = 1;</code>
ログイン後にコピー

このクエリは、販売レコードを salepricesaledate でグループ化し、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」に設定します。サブクエリは、一意の idsaleprice の組み合わせに関連付けられた saledate 値を効率的に取得します。 INNER JOIN により、一致するレコードのみが更新されます。

このアプローチでは、GROUP BY 句と HAVING 句の機能を利用して、複数の列にわたって個別の選択を効果的に実行し、目的の更新を実現します。

以上がSales テーブル内の日付と価格の一意の組み合わせで行を更新するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート