Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
TERJAWAB [solved] logika statistic
#1
selamat pagi mas Jawaad dan forum member yang lain...

saya ingin membuat statistik dari database yang ada, misalkan saya ingin mencari 10 besar pengunjung tersering datang, logikanya bagaimana ya?

terus terang belum kepikiran  Embrassed

PHP Code:
   <wait>pencerahan</wait
matur nuwun...
Reply
#2
logika sederhana...
1. kumpulkan nilai jumlah pengunjung dengan asumsi menggunakan logika database GROUP BY nama/ip pengunjung
2. urutkan hasil row data tersebut asumsi menggunakan logika database ORDER BY jumlah nya DESC (descending)

jika digabung keduanya maka akan menghasilkan statistik 10 besar pengunjung yg sering datang...
Reply
#3
mas Jawaad, terima kasih atas pencerahannya...
yang saya maksud pengunjung itu bukan pengunjung situs, tapi pengunjung ke sebuah tempat (mis: hotel, dll)
asumsi ada data seperi ini:
PHP Code:
---
    
nama_tamu  tgl_datang tgl_keluar
    
-----------+------------+------------ 
    
adi        2009/03/12 2009/03/18
    ida        
2009/02/07 2009/02/11
    adi        
2009/01/10 2009/01/14
    adi        
2008/11/26 2008/11/30
    dudi       
2008/11/05 2008/11/10
    ida        
2009/11/01 2009/11/11
    
...dst 
berdasarkan data yang ada diatas akan didapat urutan adi (3) ida (2) dan dudi (1)

nah implementasi syntax select-nya seperti apa kalo juga perhitungan hanya ingin dilakukan untuk 10 besar saja sehingga proses tidak memakan waktu lama seperti kalo proses dilakukan untuk seluruh data yang ada yang kemungkinan akan bertambah banyak...

begitu maksudnya mas...
Reply
#4
coba seperti ini mas:
PHP Code:
$sql "SELECT nama_tamu, COUNT(nama_tamu) AS jumlah FROM pasien GROUP BY nama_tamu ORDER BY jumlah DESC LIMIT 10"
Reply
#5
saya sudah coba query yang mas kasih dan hasilnya mak nyus.

script saya jadinya begini :
PHP Code:
$cari=mysql_query("SELECT organization, COUNT(organization) AS meetingtotal FROM bqt_event WHERE eo_status='org' GROUP BY organization ORDER BY meetingtotal DESC LIMIT 10");
    while(
$data=mysql_fetch_array($cari)){
      
$organization=$data[organization];
      
$meetingcount=mysql_query("SELECT * FROM bqt_event WHERE organization='$organization' AND eo_status='org'");
      
$meetingtotal=mysql_num_rows($meetingcount);
      
$revenuecount=mysql_query("SELECT SUM(revenue) FROM bqt_event WHERE organization='$organization' AND eo_status='org'");
      
$revenuetotal=mysql_fetch_row($revenuecount);
      echo 
$data[organization]." = ".$meetingtotal." = ".number_format($revenuetotal[0],0,',','.')."<br>";
    } 
hasilnya seperti ini :
PHP Code:
DPD HISWANA MIGAS 13 310.320.000
    PT
GADA 223.975.000
    ARA TOUR 
291.275.000
    RS PAJAJARAN 
65.375.000
    PIT KE 13 PERALMUNI BANDUNG 
473.920.000
    DINAS PENDIDIKAN PROPOSIONAL PROP JABAR 
12.900.000
    SENTRAL DIKLAT KEUANGAN 
10.700.000
    TEST 123 
2.343.243
    PT
SUFIA TECHNOLOGY 4.090.000
    DIKTI 
31.100.000 
bisa lebih di sederhanakan gak ya?

nah itu kan berdasarkan organisasi yang tersering meeting, lalu bagaimana kalo saya ingin menampilkan data 10 besar berdasarkan total revenue terbesar?

btw, ajaxim-nya dah jalan ya mas Surprised
Reply
#6
coba begini mas...
PHP Code:
<?php
    $cari
=mysql_query("SELECT organization, COUNT(organization) AS meetingtotal, SUM(revenue) AS total_revenue FROM bqt_event WHERE eo_status='org' GROUP BY organization ORDER BY meetingtotal DESC LIMIT 10");
        while(
$data=mysql_fetch_array($cari)){
          
// disini jgn ambil * (semua), supaya gak berat pilih salah satu field aja, toh yg dibutuhkan hanya jumlahnya saja
          // kalau ada field id yg primary, lebih ringan lagi..
          
$meetingcount=mysql_query("SELECT revenue FROM bqt_event WHERE organization='$organization' AND eo_status='org'");
          
$meetingtotal=mysql_num_rows($meetingcount);
          
// kayaknya pakai ambil dr yg query pertama sama bukan? tp dicoba aja dulu hasilnya
          //$revenuecount=mysql_query("SELECT SUM(revenue) FROM bqt_event WHERE organization='$organization' AND eo_status='org'");
          //$revenuetotal=mysql_fetch_row($revenuecount);
          
$organization=$data[organization];
          
$revenuetotal=$data[total_revenue];
          echo 
$organization." = ".$meetingtotal." = ".number_format($revenuetotal,0,',','.')."<br>";
        }
?>

untuk urutan berdasarkan total revenue, coba begini:
PHP Code:
<?php
    $cari
=mysql_query("SELECT organization, COUNT(organization) AS meetingtotal, SUM(revenue) AS total_revenue FROM bqt_event WHERE eo_status='org' GROUP BY organization ORDER BY total_revenue DESC LIMIT 10");
    
?>

Oiya ajaxim nya saya install, tp masih banyak kekurangan, username diwaktu chat tidak nampil melainkan userID, terus kadang kalau ada Bot yg berkunjung sperti GoogleBot atau YahooBot malah bisa diajak chat, kan aneh... masih blm stabil, saya ambil dr website phpbb.com.
Reply
#7
muanteb mas Wink

yang by company jadinya begini :
PHP Code:
$cari=mysql_query("SELECT organization, COUNT(id) AS meeting_total, SUM(revenue) AS revenue_total FROM bqt_event WHERE eo_status='org' GROUP BY organization ORDER BY meeting_total DESC LIMIT 10");
    while(
$data=mysql_fetch_array($cari)){
      echo 
$organization=$data[meeting_total]." = ".$data[organization]." = ".number_format($data[revenue_total],0,',','.')."<br>";
    } 
yang by revenue :
PHP Code:
$cari=mysql_query("SELECT organization, COUNT(id) AS meeting_total, SUM(revenue) AS total_revenue FROM bqt_event WHERE eo_status='org' GROUP BY organization ORDER BY total_revenue DESC LIMIT 10");
    while(
$data=mysql_fetch_array($cari)){
      echo 
$organization=$data[meeting_total]." = ".$data[organization]." = ".number_format($data[total_revenue],0,',','.')."<br>";
    } 
script kelihatan lebih simple dan cantik Smile

Cool musik Yihaa

masih nunggu update ajaxim, mudah2 gak terlalu lama biar bisa ikut manfaatkan...
Reply
#8
kelupaan mas,,, soal ajaxim kalo mas sempet lihat-lihat ke http://www.dl4all.com
dia pake wibiya (http://www.wibiya.com) sayang saya belum sempet coba, kelihatannya gak kalah menarik dari ajaxim...
Reply
#9
seep kalau gitu mas musik
iya ntar boleh dicoba jg tuh yg wibiya.com, dulu dah pernah coba seh, tapi agak lamban loading nya, tapi ntar perlu dipertimbangkan lagi... Cool
Reply
#10
hebat bener ada rumusnya mantep deh
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)