製品をmagentoにインポートする一連のMySQLスクリプトを作成しました。GROUPBYを使用して、製品を構成可能な製品にグループ化しました。
以前はMIN()
、グループ内で最低価格を取得し、その値を構成可能な製品の価格として使用していましたが、最近では、このようなケースがいくつかあります。
Simple Product ID | Price ($)
------------------------------
1001 | 10
1002 | 10
1003 | 5
1004 | 10
1005 | 20
1006 | 10
この状況では、構成可能な製品を作成するMIN(Price)
と5が返されますが、構成可能な製品ではマイナスの違いが生じる可能性があることを知りました。つまり、コードを変更する必要があるため、最小値(5)を取得する代わりにモードを取得します。 (10)
クエリのをMODE()に置き換えるだけでよいと思いましたMIN()
が、MySQLのMODE()関数がないようです。これが、使用しているクエリの例です。
INSERT INTO import_table
(
product_id, stock_id, price
)
SELECT ODT.product_id, ODT.stock_id, MIN(ODT.Price)
FROM org_data_table AS ODT
GROUP BY ODT.stock_id
モードを取得するためにすでに存在する関数はありますか?そうでない場合は、それを取得するために何をする必要がありますかMIN()
、クエリの一部を変更したいだけです