0

これがこの質問をするのに適切な場所であるかどうかは完全にはわかりません. うまくいけば、誰かが答えを持っているか、アドバイスを与えることができます。

私は日用品を販売する小さな店を経営しています。上位の変動項目をリストするプログラム/スプレッドシートがあります。

この情報は、販売されたユニットの合計数で並べ替えることができます。

Product 1, 15  
Product 2, 12  
Product 3, 7

... または売上高の合計値:

Product 2, $250.00   
Product 1, $75.00  
Product 3, $30.00  

これら 2 つの値を組み合わせたランクを作成したいと思います。プログラミング (PHP、Python、Perl など) とデータベースの経験があります。収入とユニットの合計値でトップムーバーを特定する方法があるかどうか疑問に思っていました. たとえば、製品 1 はより多くのユニットを販売しますが、収益は少なくなります。おそらく製品 2 の方が重要です。おそらく、販売されたユニットごとに1.5ポイント、1ドルごとに2ポイントが与えられるポイントベースのシステム. (金額の方が少し重要です)

何か案は?

4

2 に答える 2

0

MySQL を使用していると仮定すると、このクエリは探しているものにかなり近いはずです。

SELECT Product, 
  CAST(1.5*UnitsSold as DECIMAL) + 2*DollarsSold OverallRank
FROM YourTable
ORDER BY OverallRank DESC

SQL フィドルのデモ

そうでない場合は、スプレッドシートでも同じ概念が機能するはずです。

于 2013-03-02T14:24:46.447 に答える
0

また、この種の質問をするのに適切な場所かどうかもわかりません。アルゴリズムまたはいくつかの標準的なビジネスルールを求めているようですが、最終的なコードを求めています。

さて、新しいアイデアを生み出すためのアプローチを投稿します。アルゴリズムのリストを作成し、上位の値をテストします。

import math

fs = [
 ('Plain coef',    lambda m: math.log(m[1]* units_coef)  
                           + math.log(m[2]* money_coef)  ),
 ('Coef into log', lambda m: m[1]* units_coef 
                           + m[2]* money_coef                       ),
 ('Coef out log',  lambda m: math.log(m[1])* units_coef  
                           + math.log(m[2]) * money_coef ),
 ('Coef out log2',  lambda m: math.log(m[1],2)* units_coef  
                           + math.log(m[2],2) * money_coef ),
]

movings = [ ( 'product1', 1500,    75.00 ),
            ( 'product2',    2, 90000.00 ),
            ( 'product3', 1200,  8000.00 ),
            ( 'product4',    6,  4000.00 ),
            ( 'product5',  500,  1000.00 ),
            ( 'product6',  800,  1200.00 ),
            ( 'product7',  300,   800.00 ),
           ]

units_coef = 1.1
money_coef = 0.04

for (n,f) in fs:
    print ''
    print n
    print '==============================================='
    for i in sorted( movings, 
                     key = lambda m: f(m) , 
                     reverse=True)[:3]:
        print i, f(i)

結果:

$ python solds.py 

Plain coef
===============================================
('product3', 1200, 8000.0) 12.9537080114
('product6', 800, 1200.0) 10.6511229184
('product5', 500, 1000.0) 9.99879773234

Coef into log
===============================================
('product2', 2, 90000.0) 3602.2
('product1', 1500, 75.0) 1653.0
('product3', 1200, 8000.0) 1640.0

Coef out log
===============================================
('product1', 1500, 75.0) 8.21724195034
('product3', 1200, 8000.0) 8.15857239218
('product6', 800, 1200.0) 7.63667597387

Coef out log2
===============================================
('product1', 1500, 75.0) 11.8549742115
('product3', 1200, 8000.0) 11.7703319309
('product6', 800, 1200.0) 11.0173945564
于 2013-03-02T14:51:32.147 に答える