Mysql De Günlük Ortalama Veri Almak
-
Merhaba
Örnek db ektedir,
Mysql de meşhur döviz bilgilerini içeren bir db var. Ben bu db de kategorisi 1 2 3 4 ... olan dövizleri bir hafta önceki ortala yada max değerini nasıl çekebilirim.
SELECT MAX(`satis`) , DATE(`tarih`) FROM doviz WHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) and kategori = 2 GROUP BY DATE(`tarih`) ASC
şu şekilde çekiyorum ama istediğim sonucu vermiyor.
Benim istediğim
kategori - max yada ortalam satış
1 fiyatı
2 fiyatı
3 fiyatı
4 fiyatı
5 fiyatı
6 fiyatı
7 fiyatı
.
.
Örnek tablo : https://www.db-fiddle.com/f/4dmKfPmk99jUjtHhYDavjV/0
Yani örneğin geçen hafta pazartesi günkü veri yada 7 gün önceki verileri çekecek. Mesela
Bugün pazartesi geçen hafta pazartesiyi çekecek, ama şöyle bişi de var, cumartesi ve pazar veri yok, olmayan veriler de sıfır göstermesin, yada 7 gün önceki veri gibi.
x-files tarafından 27/Tem/20 16:27 tarihinde düzenlenmiştir -
hocam yanlıs anlamadıysam ıstedıgın kod bu herhalde
select kategori, (select alis from doviz df where tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) and df.kategori=dd.kategori limit 1) as Alis from doviz dd where tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) group by kategori
-
Teşekkürler reis tam istediğim gibi oldu. Çok sağol
-
Reis seni,n bu sorguyu yaptığımda her seferinde farklı değerler çıkıyor.
-
bugun tekrar kontrol ederım
ama sorguyu bıraz duzenlemen gerek ıkıncı sorguda neyı ıstıyorsan ona gore duzenlemen gerek
düzenledim kodu tekrar
select kategori, (select MAX(alis) from doviz df where tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) and df.kategori=dd.kategori limit 1) as Alis from doviz dd where tarih >= DATE_SUB( CURDATE( ) , INTERVAL 30 DAY ) group by kategori
bu sekılde belırttıgın tarıh aralagında max degerleri getirir
lazz tarafından 28/Tem/20 10:51 tarihinde düzenlenmiştir -
Tamam reis bu şekilde oldu. Çok sağol.
-
Arkadaşlar
SELECT MAX(`satis`) , DATE(`tarih`) FROM doviz WHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 365 DAY ) and kategori = 1 GROUP BY DATE(`tarih`) ASC
Şu sorgu ile son bir yıl içinde her güne ait veri çekebiliyorum, şimdi ben bu veriyi her ay için bir veri olacak şekilde nasıl ayarlayabilirim.
-
x-files bunu yazdı
Arkadaşlar
SELECT MAX(`satis`) , DATE(`tarih`) FROM doviz WHERE tarih >= DATE_SUB( CURDATE( ) , INTERVAL 365 DAY ) and kategori = 1 GROUP BY DATE(`tarih`) ASC
Şu sorgu ile son bir yıl içinde her güne ait veri çekebiliyorum, şimdi ben bu veriyi her ay için bir veri olacak şekilde nasıl ayarlayabilirim.
select max(satis),DATE_FORMAT(tarih , "%Y%m") as yil_ay from doviz group by DATE_FORMAT(tarih , "%Y%m")
böyle dener misin kısımları istediğin gibi düzenleyebilirsin
-
Teşekkürler hocam sağol.