2017-09-22 16 views
-3

私はテーブルを持っている:SQL - 合計、表中の平均値

DATE TIME ITEM PRICE 
01-01-2011 0 Gold 22000 
01-01-2011 1 Gold 23000 
01-01-2011 2 Gold 22000 
01-01-2011 3 Gold 21000 
01-01-2011 4 Gold 24000 
01-01-2011 5 Gold 19000 
01-01-2011 6 Gold 18000 
01-01-2011 7 Gold 17000 
01-01-2011 8 Gold 16000 
01-01-2011 9 Gold 30000 
02-01-2011 0 Gold 22000 
02-01-2011 1 Gold 15000 
02-01-2011 2 Gold 28000 
02-01-2011 3 Gold 31000 
02-01-2011 4 Gold 19000 
02-01-2011 5 Gold 22000 
02-01-2011 6 Gold 23000 
02-01-2011 7 Gold 25000 
02-01-2011 8 Gold 26000 
02-01-2011 9 Gold 27000 

私のように出力を持つようにしたい:

DATE  ITEM TOT  AVG MAX  TIME_MAX MIN TIME_MIN 
01-01-2011 GOLD 21200 2120 30000 9  16000 8 
02-01-2011 GOLD 23800 2380 31000 3  15000 1 

  • DATE - 日付テーブルから
  • アイテム - テーブルからのアイテム
  • TOT - 日中価格の和
  • AVG - 日に最大価格
  • TIME_MAX - - 日中価格の平均
  • MAX価格が
  • 日にMIN最大された時間 - 最低価格日に
  • TIME_MIN - 最小は一日に
+1

使用しているRDBMSとそのバージョンにタグを付けてください。 SQL Server 2016、Oracle 11g – DeanOC

+1

あなたが持っているテーブルとあなたが望む出力(ストーリーを伝えてくれてありがとう)が面白いのですが、何か質問がありますか?あなたが試した問題は何ですか? –

+0

また、あなたが試したことを述べてください。 – Prisoner

答えて

1

あった価格での時間は、このクエリをお試しください。

SELECT 
DATE,ITEM,SUM(PRICE) AS TOT, 
AVG(PRICE) AS AVG, 
MAX(PRICE) AS MAX, 
MAX(TIME) AS TIME_MAX, 
MIN(PRICE) AS MIN, 
MIN(TIME) AS TIME_MIN 
FROM T 
GROUP BY DATES,ITEM; 

あなたはそのGROUP BY文のSELECT書に含める必要はない、あなたの結果に時間を必要としないので。