SQL文で商品別人員別の作成時間(平均値)を出力

このQ&Aのポイント
  • SQL文で商品別、人員別の作成時間(平均値)を出力する方法について困っています。
  • 開発環境はDB:Oracle11gR2、プラットフォーム:VisualStudio2010です。
  • 商品IDと人員IDごとの作成時間の平均値を求めたいのですが、1文のSQL文で出力する方法がわかりません。
回答を見る
  • ベストアンサー

SQL文で商品別人員別の作成時間(平均値)を出力

SQL文で商品別、人員別 の作成時間(平均値)を出力したいのですが、出来ずに困っています。 *開発環境* DB:Oracle11gR2 プラットフォーム:VisualStudio2010 *データ 商品ID_人員ID_作成開始日時_作成終了日時 1___1___16/2/18 9:00_16/2/18 9:10 1___1___16/2/18 9:10_16/2/18 9:15 1___2___16/2/18 9:00_16/2/18 9:10 2___1___16/2/18 9:00_16/2/18 9:10 2___2___16/2/18 9:10_16/2/18 9:20 2___2___16/2/18 9:20_16/2/18 9:30 *出力結果 商品ID 人員ID 平均値 1___1___7.5 1___2___10 2___1___10 2___2___10 と言った具合な結果が出力したいです。 1文のSQL文で、group by や 副問い合わせの合わせ技で出力できそうかとは思うのですが。。。 どうぞ、宜しくお願い致します。

  • Oracle
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
  • oboroxx
  • ベストアンサー率40% (317/792)
回答No.1

検証も、特に調べてもいないので間違っているかもしれませんが、 SELECT 商品ID, 人員ID, AVG(span) FROM (SELECT 商品ID, 人員ID, 作成終了日時 - 作成開始日時 AS span FROM テーブル) A1 GROUP BY A1.商品ID, 人員ID みたいな感じかと。

yasu_999
質問者

お礼

ありがとうございます。 SELECT 商品ID, 人員ID, AVG(作成終了日時 - 作成開始日時) AS span FROM テーブル GROUP BY 商品ID, 人員ID で、出力できました!

その他の回答 (1)

  • urunpa
  • ベストアンサー率0% (0/3)
回答No.2

spanは「分」で求めたい様ですので、開始日時と終了日時の差の値(=日付差)に「24×60」を掛ければ良いかと思います。

yasu_999
質問者

お礼

ありがとうございます。 参考にさせて頂きます。

関連するQ&A

  • 集計のSQL文について

    SQLでの集計方法について質問です。 Oracle8iを使用しています。 あるテーブルに以下のようなレコードがあります。 ID 回数 値 1   1  100 1   2  200 1   3  300 2   1  150 2   2  550 .... この登録されている値をそのIDごとに、その回数まで回数ごとにサマリーした結果を出力したいのですが どうすればよいでしょうか。 ID 回数 値 1   1  100  ・・・(100) 1   2  300  ・・・(100+200) 1   3  600  ・・・(100+200+300) 2   1  150  ・・・(150) 2   2  700  ・・・(150+550) 宜しくお願いします

  • SQL文の作成について

    前の質問が解決してないのに、すいません。 SQL文を作成して、関数に投げると配列で 実行結果が返ってくるらしいのですが。 SQL文作成時に変数をWHERE節に組み込む 記述の仕方が自信ないです。以下のような感じです。 Dim srtSql As String Dim Key_Id As String Call Key_Get(Key_Id)  ’キーを取得 strSql = strSql & ”Select Tb*” strSql = srtSql & ” From Tb ” strSql = strSql & ”Where ” srtSql = strSql & ”Tb_Key_Id = ’” strSql = strSql & Key_id & ”’” のように(Accessだとこんな感じ【キーはSring】)ダブルクォーテーションの外に書いてよいのでしょうか?

  • SQL文がわかりません。

    SQL文がわからなく困っております。 下記のデータ*01を*02のデータのようにSELECTするためには、 どのようなSQL文を書けばよいのかお教えいただけますでしょうか? DBはoracle11gです。 ※01 ID      所属部署 _____________________________    1     a    1     b     2     a    2     b    2     c    3     a    3     b    3     c    3     d ____________________________ ↓↓↓↓↓↓↓↓↓↓↓↓↓↓ ※02  ID   所属部署    所属部署2   所属部署3   所属部署4 _________________________________________   1         a         b 2         a         b         c 3         a         b         c         d

  • oracle8.1iでSQL文処理時間について

    Oracle8.1iでの質問です。 クライアントからサーバへなんらかのSQL文を 投げた場合、サーバで処理をし、クライアントに 結果を返すと思いますが。 サーバ側でのSQL文の処理開始時刻と処理終了時刻を知りたいのですが、どのような システムテーブルを見ればよいのかご存知の方 教えてください。SQL文まで、分かれば助かります。

  • SQL文

    Oracle初心者なのですみません 助けてください。 TBL 日付,区分,開始番号,終了 2006/10/11 ,A,1,10 2006/10/11 ,B,20,22 見たいなTBLがあって、日付を指定すると 開始・終了の範囲を出力するSQL文を書きたいのですが・・・ 出力イメージは 2006/10/11,A,1 2006/10/11,A,2 2006/10/11,A,3 2006/10/11,A,4 | 2006/10/11,A,10 でこれをそのまま、新規TBLに追加したいのですが・・・・

  • 期間の重複を調べるSQL文について・・・

    EVENT --+------------+------------+ id | start_date | end_date --+------------+------------+ 0 | 2007-06-01 | 2007-06-03 | --+------------+------------+ 1 | 2007-06-04 | 2007-04-06 | --+------------+------------+ 2 | 2007-06-02 | 2007-06-05 | ↑こんな感じでイベントを管理するテーブルがあります。 イベントの開催期間の重複を出力するSQL文を書きたいのですが、 何かいい案はありませんでしょうか??? 結果的には重複し合っているレコードのidを出力させたいです。 よろしくお願いします。

  • JOINを使ったSQL文を作成しようとしています。

    JOINを使ったSQL文を作成しようとしています。 以下の様な3つのテーブルがある場合のSQL文を教えて下さい ※勉強の為、適当なテーブルを作成しましたが、やりたい事は  JOINの中に更にJOINさせたSQL文を作成したいと思ってます 表A  USER_ID(プライマリキー)  NAME 表B  USER_ID(プライマリキー) ※表A.USER_IDと紐着く  BUMON(プライマリキー)  TERM(プライマリキー) 表C  BUMON(プライマリキー) ※表B.BUMONと紐着く  TERM(プライマリキー) ※表B.TERMと紐着く  MEMBER 【取得したい項目】  表A.USER_ID 【抽出条件】  表CのMEMBERの値が'10','20'以外(である表AのNAMEを取得)

  • SQL文のダブルクォーテーションを取りたい。

    SQL2008を使用しております。 2つのDBを統合したいのですがユニークIDがかぶっているデータが あるのでIDを変更したいのですが フリーソフトでINSERT文をTab区切りで出力してIDを変更してINSERT文を 作成するといらない箇所に「"」ダブルクォーテーションが入ってしまします。 もちろんその状態ではクエリ実行できないので困っています。 順序はINSERT文をTab区切りで出力→出力されたTab区切りのcsvのIDを変更→テキストで保存(csvでも保存)→拡張子をsqlに変更するといらない箇所に「"」ダブルクォーテーションが入ってしまします。 変更保存の問題でしょうか? どうしたら「"」ダブルクォーテーションが入らない方法はありませんか? 以上、わかるかた教えてください。 よろしくお願いします。

  • batファイルからsql文実行

    クライアントOS:WIN2000 Oracle:9i(サーバ(UNIX)上にあります) 現在、クライアントからbatを起動し、SQL文を投げ、結果を取得したいと思っております。 (SQL文は単純にTBLをカウントしているだけです) ・batの中身 sqlplus %UID%/%PASS%@%SID% @test.sql > output 結果は取得出来るのですが、余分な情報も結果に出力されてしまいます。結果のみを出力させるにはどうすればよろしいでしょうか? ・余分な情報 Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production With the Partitioning, OLAP and Oracle Data Mining options JServer Release 9.2.0.4.0 - Production に接続されました。

  • アプリケーションからのSQLトレース出力について

    java(servlet)で作成したアプリケーションのSQLトレースを取得したいのですが、トレースファイルに出力されません。 ご教授お願いします。 【環境】 ・oracle 9i(10gでも確認しましたが同様の結果でした) ・java(servlet)の実行環境はwindows server 2003 【設定、操作方法】 ●SQLPLUSより 1.ALTER SESSION SET sql_trace = true; 2.timed_statistics は true になっている事を確認 ●ブラウザより 3.アプリケーションを動かす(内部でSQLが発行される操作を行う) ●コマンドプロンプトより 4.tkprof より出力内容を確認 出力結果にアプリケーションで発行しているSQLの解析情報が全く入っていません。 上記の操作に問題があるのでしょうか?それとも何か他に設定が必要なのでしょうか? よろしくお願いします。