鉄道会社向けのアプリケーションを開発します。私は条件を特定して平均を計算するのに問題があります。 が良く、私が例に条件付き平均値とオーダー・オラクル
を与える理解するためにここでは、データベースからのデータの例です:
---------check----------------HR---------------Serie-----NameStation
06/12/2016 05:57:00 06/12/2016 05:57:07 7100 Station A
06/12/2016 05:59:30 06/12/2016 05:59:40 7100 Station B
06/12/2016 06:00:00 06/12/2016 06:00:35 7100 Station C
07/12/2016 05:57:00 07/12/2016 05:56:34 7100 Station A
07/12/2016 06:00:30 07/12/2016 05:58:59 7100 Station B
07/12/2016 06:01:00 07/12/2016 05:59:46 7100 Station C
08/12/2016 05:57:00 08/12/2016 05:56:25 7100 Station A
08/12/2016 05:59:30 08/12/2016 05:59:28 7100 Station B
08/12/2016 06:00:00 08/12/2016 06:01:50 7100 Station C
は私が月を超える各列車のデータを持っています。 。 列車には毎日計画された旅程があります(指定された時刻に3駅を通過する=理論時刻は列のチェックです。タイプはdd/ mm/yyyy hh:mm:ss
です)。 私のHR列は列車が列車で実際に通過している時刻で、チェック列と同じ形式のリアルタイムです。
私の目標は、1か月にわたるHRカラムの平均を計算することです。 しかし、1ヶ月以上は、スケジュールの変更が発生します。 3つのステーションの同じルーチン=理論的時間(列チェック)が同じ場合は列HRの平均を計算する必要があります
この例では、セリエー7100には07/12/2016をB局とCで入力すると、06/12/2016と08/12/2016の平均値のみを計算する必要があります。 そして、07/12/2016の平均は、分離しています。 または最もよく再計画された旅程の平均を計算する方が良い(列のチェック時にステーションA + B + Cと同じ時間)。
結果は、それが他の日とステーションAで2016年7月12日の平均を計算しますので、私はGROUP BY
を使用しようとしましたが、私はいくつかの情報を失う
check HR Serie StationName
05:57:00 05:56:46 7100 Station A
05:59:30 05:59:34 7100 Station B
06:00:00 06:01:13 7100 Station C
05:57:00 05:56:34 7100 Station A
06:00:30 05:58:59 7100 Station B
06:10:00 05:59:46 7100 Station C
でなければなりません。
両方のステーションで同じルート/同じ時間を持つシリーズがあれば、毎日確認できますか?>平均を計算しますか? または、毎日のルーチンを基準日にまとめることはできますか?
SELECT check,
TO_CHAR(TRUNC(SYSDATE) + AVG(HR - TRUNC(HR)), 'HH24:MI:SS')
AS "AVG(HR)",
serie,
name
GROUP BY check, serie, name
HAVING COUNT(*) > 1
は、事前にあなたに感謝:
は、ここに私のコードです。
質問。 'check'(悪いカラム名、それはOracleキーワードと衝突します)と' hr'のデータ型は何ですか?彼らはすべて同じ日付になっていますか(または特定の日付との関連性がない抽象的な時間帯であること)?次に、現在のクエリの問題は何ですか?どの情報を失っていますか? – mathguy
Redha Ben私は「HAVING COUNT(*)> 1」をなぜ疑問に思ったのですか?これは結果セットを、 'CHECK'-'SERIE' -NAME'の同じ組み合わせが複数回現れるレコードのサブセットのみに制限します。私はあなたが一人の代表者しかいないときにアイテムの平均化を避けたいと思っていますが、あなたの欠けているデータに一度現れる 'CHECK'-' SERIE'-'NAME'が含まれているのかどうか疑問に思っていますか?おかげで – alexgibbs
私を助けてくれてありがとう男。私は投稿を編集して、PLZをチェックすることができます。 –