2017-05-17 3 views
0

以下はその詳細です。特定の列の総計を見つけて最後に表示するにはどうすればよいですか?

date   | Site | Power 
2017-05-11 | ABC | 171.123 
2017-05-12 | DEF | 170.123 
2017-05-13 | GHI | 172.123 
2017-05-14 | ABC | 173.123 
2017-05-15 | DEF | 170.123 

合計電力を計算して最後に表示します。私が使用している

クエリが

select date, I_site, 
     (
      select sum(power) as Total_power 
      from mytable 
      where D_date between '2017-5-11' and '2017-05-15' and 
        I_site in (ABC,DEF,GHI,ABC,DEF) 
     ) 
from mytable 
where D_date between '3470' and '3500' and 
     i_site in (ABC,DEF,GHI,ABC,DEF) 
group by date,I_site 

私は取得しています出力は同じパワー列内のサイト値の和です。

+1

は、期待される結果何であることを書くことができます? (書式付きのテキストもここにあります。) – jarlh

答えて

1

あなたのクエリは、ほとんどが正しいようだが、あなたのselectには凝集が(sumが、内側のクエリ内にあるので、それはカウントされません)がないので、あなたがgroup by句を必要としない、ありがとうございました。また、selectpowerフィールドがありません。そのため、結果の3番目の列の元のpowerの値が、元の値に置き換えられます。

select date, I_site, power, 
     (
      select sum(power) as Total_power 
      from mytable 
      where D_date between '2017-5-11' and '2017-05-15' and 
        I_site in ('ABC', 'DEF', 'GHI') 
     ) 
from  mytable 
where D_date between '3470' and '3500' and 
     i_site in ('ABC', 'DEF', 'GHI') 

あなたは、内側のクエリにし、外1に適用しているフィルタが同じであれば、あなたはこのようそのテーブルのデータでは、あまりにも

select date, I_site, power, 
     sum(power) over() as Total_power 
from mytable 
where D_date between '3470' and '3500' and 
     i_site in ('ABC','DEF','GHI') 
関連する問題