4

次のような為替辞書があります。

exchange_rates = {'USD': 1.00000,
                  'EUR': 1.32875,
                  'GBP': 1.56718, ...}

次に、以下を使用して製品の販売情報を取得します。

SELECT price, currency FROM sales

おそらく 100 万行あり、次のようになります。

- 2.99    USD
- 3.01    EUR
- etc.

総和を米ドルで取得するには、どのように行列乗算を行うのですか?

4

3 に答える 3

5

データベースから 100 万行を取得して Python で計算を行う代わりに、辞書をデータベースに渡して、データベースに計算を行わせ、結果を返信してもらいます。

これを行うには、次のようなクエリを作成します。

SELECT SUM(price * exchange_rate) AS total
FROM sales
LEFT JOIN
(
    SELECT 'USD' AS currency, 1.00000 AS exchange_rate
    UNION ALL
    SELECT 'EUR', 1.32875
    UNION ALL
    SELECT 'GBP', 1.56718
    -- ...
) AS exchange
ON exchange.currency = sales.currency
于 2012-05-08T22:46:58.793 に答える
0
SELECT SUM(price * factor) 
FROM 
       ( 
        SELECT sales.price AS price, exchange.factor AS factor
        FROM   sales
        JOIN   exchange ON exchange.currency = sales.currency
       ) AS t

これは、交換テーブルがあることを前提としています

于 2012-05-08T22:53:27.223 に答える
0

行う

SELECT price FROM sales

次に、テーブルの数値が米ドルであると仮定して、返されるすべてのアイテムを合計します。

于 2012-05-08T22:44:29.940 に答える