私は単純なクエリを持っている:私は追加するには、自分のコードを調整したいSQL:合計で条件としてパーティションを使用して
|price_band | device | requests
0 Android 149007
0.01 Android 466467
0.05 Android 520661
0.1 Android 487273
0 Desktop 319786
0.01 Desktop 1485894
0.05 Desktop 1693395
0.1 Desktop 1547485
:ように見えるテーブルを返し
SELECT
price_band
,device
,SUM(requests) as requests
From database.price_band_stats
WHERE
day = '2016-10-31'
AND product_id = 6584
and device IN ('Desktop', 'Android')
GROUP BY
price_band
,device
余分な列。新しい列は、指定されたデバイスの価格帯以上のすべての要求を合計します。
:私たちは、Android上の価格帯0.05を取る場合、例えば、私は、テーブルは次のようになり、すべての要求の合計が0.05以上(すなわち0.05および0.1)の価格帯でAndroidにしたいです
price_band device requests request_above_price_band
0 Android 149007 1623408
0.01 Android 466467 1474401
0.05 Android 520661 1007934
0.1 Android 487273 487273
0 Desktop 319786 5046560
0.01 Desktop 1485894 4726774
0.05 Desktop 1693395 3240880
0.1 Desktop 1547485 1547485
私はすべてを理解していない、しかし、1つの提案は、作成することです。 2つの一時テーブル。最初のリクエストは既存のリクエストの結果を保持し、2番目のリクエストは結果を追加する追加のカラムで保持します。 2つの一時テーブルを内部結合することができます。 – Alee
このビット:「価格帯が問題の価格帯よりも大きいか等しい」。特に曲がっています –
こんにちは。私は結果の表がこれを明確にするのに役立つかもしれないと思った。たとえばAndroidで価格帯0.05を使用した場合、価格帯が0.05以上(0.05と0.1)のAndroidへのすべてのリクエストの合計が必要です。 – cpokane