Friday, May 24, 2013

Sharing Everything From My Experience And Knowlegde

Sharing Everything From My Experience And Knowlegde


SELECT TOP N PERCENT (%) Record (Ms.SQLServer,Ms.Access,MySQL,SQLite,PostgreSQL,FireBird,Oracle,DB2,Sybase)

Posted: 23 May 2013 08:28 PM PDT

Sebelumnya saya sudah membahas tentang SELECT TOP di berbagai jenis database. Sekarang saya akan menambahakan penjelasan tentang SELECT TOP N PERCENT.
OK, contoh apa bedanya SELECT TOP 50 dengan SELECT TOP 50 PERCENT ? jika saya punya data seperti ini (1 samapai 200) :
Nomor
1
2
sampai
200

1.SELECT TOP 50
Artinya kita akan SELECT 50 ROW PERTAMA, contoh : SELECT TOP 50 nomor FROM DJIESOFT_tbl, dan hasilnya 1 s/d 50.
Jika anda mengurutkan secara DESCENDING , contoh : SELECT TOP 50 nomor FROM DJIESOFT_tbl ODER BY NO DESC, maka hasilnya 200 s/d 150

2.SELECT TOP 50 PERCENT
Artinya kita akan SELECT 50% ROW dari Total ROW, jadi jika total row 200 maka perhitungannya :
Jika 50% : 200 * (50/100) = 100 Row
Jika 30% : 200 * (30/100) = 60 Row
Contoh : SELECT TOP 50 PERCENT nomor FROM DJIESOFT_tbl
TOP N PERCENT ini hanya ada di database Microsoft (SQLSERVER & ACCESS), lalu bagaimana jika kita ingin menggunakan hal ini di dabatase lain seperti MySQL, dll ?
Banyak cara untuk meng-akali hal ini, salah satunya adalah dengan dua kali query :
1.Dapatkan persentasi jumlah row dan simpan ke variable
"SELECT ROUND(COUNT(nomor) * (50 / 100)) AS Rowpercent FROM DJIESOFT_tbl"
... sintak di programming untuk menyimpan ke variable, misal didapatkan hasilnya : var_RowPercent = 70

2.Select via LIMIT
"SELECT nomor FROM DJIESOFT_tbl LIMIT " & var_RowPercent
...sintak di programming untuk execute SQLQuery

Tags:
Returning TOP N PERCENT Records, How to take top 5% PERCENT records using select in postgres, select top n record PERCENT, select top PERCENT in mysql, select top in sqlite, select top in oracle, select top in postgre, select top in db2, select top in firebird, select top in sysbase, select top percent adalah ?    SQL TOP Clause, Select TOP % PERCENTin MySQL, Select first 10 distinct rows in mysql 

No comments:

Post a Comment