SpiderS_DangeR Mesaj tarihi: Mayıs 22, 2013 Paylaş Mesaj tarihi: Mayıs 22, 2013 Şimdi tek bir tablo var, bu tabloda timestamp ve rate olmak üzere 2 değer var diyelim. Ben bu rate değerlerinin X ve Y tarihleri arasında her saat/dakika/gün vs. için maximum, minimum, ilk ve son değerlerini almak istiyorum. Mesela her saat için istiyorsam sonuç tablo şöyle olacak: 01.01.2012 00:00:00 - 01:00:00 aralığı için max: 1.3 min: 0.9 first: 1.2 last: 1.2 01.01.2012 01:00:00 - 02:00:00 aralığı için max: 1.7 min: 0.5 first: 1.2 last: 1.4 gibi Sanırım MySQL de group by'ın bu işler için özel versiyonları varmış ama yetemedim ben. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
xetraynex Mesaj tarihi: Mayıs 23, 2013 Paylaş Mesaj tarihi: Mayıs 23, 2013 GROUP BY'la yapilir, tam dedigini anlamadim ama group by ile daha guzel yapilacak gibi duruyor. ama olmazsa direk soyle yapabilirsin WHERE ... ORDER BY date DESC LIMIT 1 dediginde max degerini alacan WHERE clause'da koydugun valuelara gore. aynen min icin de. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Eralpb Mesaj tarihi: Mayıs 23, 2013 Paylaş Mesaj tarihi: Mayıs 23, 2013 Ama dedigin sekilde her data icin ayri query yapmak gerekmez mi? Tek bi query'de cozmek istiyor bence. Veya yanlis anlamis da olabilirim senin dedigin seyi. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
riglous Mesaj tarihi: Mayıs 23, 2013 Paylaş Mesaj tarihi: Mayıs 23, 2013 tmstmp, rate select date_format(tmstmp, '%Y%m%d%H') , min(rate) , max(rate) , min(concat(tmstmp, rate)) first , max(concat(tmstmp, rate)) last from table1 group by date_format(tmstmp, '%Y%m%d%H') deneme fırsatım olmadı tabii ki. concat doğrudan cast ediyor mu bilmiyorum. Yoksa tmstmp ve rate'i string yapıp öyle birleştirmek gerek. Bu arada first ve last'ta, substring ile rate kısmını aldırtmak gerek. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Kojiroh Mesaj tarihi: Mayıs 23, 2013 Paylaş Mesaj tarihi: Mayıs 23, 2013 First ve lastı nası çekersin bilemedim ama min ve max nispeten kolay, istediğin her aralık tipi için ayrı query yazman lazım, misal; select time as begin, date_add(time, INTERVAL t seconds) as end, min(rate) as min_rate, max(rate) as max_rate from tbl group by round(unix_timestamp(time) DIV t) t yerine istediğin aralığın saniye cinsinden uzunluğunu koy, dakikaysa 60 misal Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
di Mesaj tarihi: Mayıs 23, 2013 Paylaş Mesaj tarihi: Mayıs 23, 2013 First be Last da sub query ile where ile aralik verilerek ve timestamp'e gore order edilerek alinir gibi. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Kojiroh Mesaj tarihi: Mayıs 23, 2013 Paylaş Mesaj tarihi: Mayıs 23, 2013 Concat çok mantıklıymış da replace edemeyebiliyo her zaman, bi tane delimiter koyup substringlemek daha iyi olabilir bi deniyim bakim Edit: Dünyanın en çirkin querysi oldu ya sdfjhklalksd select time as begin, date_add(time, interval t second) as end, min(rate) as min_rate, max(rate) as max_rate, substring(min(concat(time, 'ß', rate)), instr(min(concat(time, 'ß', rate)), 'ß') + 1) as first_rate, substring(max(concat(time, 'ß', rate)), instr(max(concat(time, 'ß', rate)), 'ß') + 1) as last_rate from tbl group by round(unix_timestamp(time) div t) Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
xetraynex Mesaj tarihi: Mayıs 24, 2013 Paylaş Mesaj tarihi: Mayıs 24, 2013 Oracle bilerek mysql'in goze batmayan featurelarini gelistirmiyor. MYSQL querylerine cok yuklenmeyin query optimizer cok iyi degil, 1 query 2 query'den her zaman iyidir diye dusunmeyin. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
di Mesaj tarihi: Mayıs 24, 2013 Paylaş Mesaj tarihi: Mayıs 24, 2013 Ama tek query cok query'den daha iyi tabi. MySQL'e socket acmak, haci ben geliyorum hazirla kendini demek cogu zaman cok daha fazla vakit aliyor query'nin calisma suresinden. Haliyle tek query ile olmayacaksa bile stored procedure'a falan gomup halletmek baya avantajli. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
xetraynex Mesaj tarihi: Mayıs 24, 2013 Paylaş Mesaj tarihi: Mayıs 24, 2013 di said: Ama tek query cok query'den daha iyi tabi. MySQL'e socket acmak, haci ben geliyorum hazirla kendini demek cogu zaman cok daha fazla vakit aliyor query'nin calisma suresinden. Haliyle tek query ile olmayacaksa bile stored procedure'a falan gomup halletmek baya avantajli. aynen mysql'e connection acmak en kotusu. connection acilmadiginda sayfalarin acilma hizi bariz farkediyor. ondan millet memcache redis diye cildiriyor :) hatta hatta php'yi bitiren en onemli nedenlerden birisi bu. connection pooling yok. Amerika'da cogu startup ruby'yi tercih ediyor artik. Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
SpiderS_DangeR Mesaj tarihi: Haziran 11, 2013 Konuyu açan Paylaş Mesaj tarihi: Haziran 11, 2013 Cok yogundum cevap yazamadim. Tesekkurler mesaj yazan herkese Link to comment Sosyal ağlarda paylaş Daha fazla paylaşım seçeneği…
Öne çıkan mesajlar