Saya memiliki tabel dan garis tempat saya mengembalikan nilai dari tabel

1

select ROUND(avg(corrente/1000*tensao*fpot/100/1000),2) as consumo,HOUR( hatual )as hora,date( hatual )as data 
from logsuc 
where nserlum=2009004991 
and date(hatual)>="2021-05-01" 
and date(hatual)<="2021-05-12" 
and corrente!=0 
group by hora,data;

Baris ini mengembalikan rata-rata untuk sepotong dan bekerja dengan sangat baik seperti yang dapat kita lihat pada gambar

2

Tetapi masalahnya muncul ketika saya harus melakukan ini untuk lebih dari satu bagian bersama-sama di meja yang sama

select ROUND(avg(corrente/1000*tensao*fpot/100/1000),2) as consumo,HOUR( hatual )as hora,date( hatual )as data 
from logsuc 
where ( nserlum=2009004986 or nserlum=2009004987) 
and date(hatual)>="2021-05-12" 
and date(hatual)<="2021-05-13" 
and corrente!=0 
group by hora,data;

Dia melakukan rata-rata tetapi akan terus memberikan nilai sekitar 0,10 dan bukan nilai 0,20 Saya membutuhkan sesuatu yang membuat rata-rata per jam dari dua potong menambahkan hingga dua jam itu memberikan kemudian 0,20 tetapi saya tidak tahu bagaimana melakukannya . Apakah ada cara untuk melakukan ini? Terima kasih

0
FireWallSP 13 Mei 2021, 18:44

1 menjawab

Jawaban Terbaik

Maka Anda perlu mengelompokkan berdasarkan nserlum juga :

select
    ROUND(avg(corrente / 1000 * tensao * fpot / 100 / 1000), 2) as consumo,
    HOUR(hatual) as hora,
    date(hatual) as data
from logsuc 
where (nserlum=2009004986 or nserlum=2009004987) 
    and date(hatual) >= "2021-05-12"
    and date(hatual) <= "2021-05-13"
    and corrente != 0
group by hora,data,nserlum;
1
eshirvana 13 Mei 2021, 15:49