2016-05-17 4 views
0

ひどいタイトルの謝罪が、私はこれを説明するより良い方法を考えることができません。時間の割合の計算は0対1です

各IDのフィールドは、0または1のいずれかになり、倉庫内の在庫の活動に基づいて1日に1回変更されます。私。在庫あり/在庫切れです。これは、レポートのおおよそのパーセンテージとして純粋に使用されます。

など。 10日で1日、90日で0 = 10%

私が今やっていることは、現在の値(タイムスタンプ付き)を1日に1回実行して、別のテーブルに簡単に作業していることですそうですね。

これは機能していますが、より効率的な方法が必要ですか?たとえば、100,000の固有IDを使用すると、これは年間26,500,000行に相当します。あなたはそこに問題を見ることができます。

私はより効率的な方法を考えることはできません。多分1つではありません。

答えて

0

あなたは、単純な選択を使用して動的にそれを照会することができます

select count(if(field_name=1,1,null))/count(*)*100 as percentage_of_one from yourtable 

field_nameがカウントされる1である必要がありますフィールドです。

+0

私の説明は十分だとは思わない... 私は各IDのフィールドが0か1のどちらかであり、倉庫。私。在庫あり/在庫切れです。これは、レポートのおおよそのパーセンテージとして純粋に使用されます。 私は現在、パーセンテージを計算するためにこれらの値(タイムスタンプ付き)を別のテーブルに保存していますが、これは完全に機能しています。 たとえば、100,000の固有IDの場合、これは年間26,500,000行に相当します。あなたはそこに問題を見ることができます。 私はより効率的な方法を考えることができません。 –

+0

レポートはどのくらいの期間返さなければなりませんか?何らかの理由で個々のステータスを保存する必要がありますか? – Shadow

+0

私の前の質問を展開するには:本当に答えはあなたの要求にかかっています。ある日の特定の製品の可用性を1年前に報告できるようにする必要がある場合は、設計をより良いソリューションで再構築することはできません。最終日の総製品数の中から在庫品の割合を知る必要がある場合は、その割合を保存するだけです。 – Shadow