Showing posts with label sql. Show all posts
Showing posts with label sql. Show all posts

Thursday, September 26, 2013

Hitung radius antar 2 Latitutude dan Longitude di SQL query posgresql


Untuk menghitung jarak atau radius 2 lokasi Latitude dan Longitude dalam kilometer (km) di postgresql dapat menggunakan query berikut ini :

 SELECT ( 6371 * acos( cos( radians( LAT1 ) ) * cos( radians( LAT2 ) ) * cos( radians( LONG@ )   
 - radians(LAT1) ) + sin( radians( LONG1 ) ) * sin( radians( LAT2 ) ) ) ) as KM ;  

Misalnya kita punya 2 lokasi:
1. lat/lng ( 5.207654 / 96.695329 )
2. lat/lng ( -6.32479/ 107.322441)

 SELECT ( 6371 * acos( cos( radians( 5.207654 ) ) * cos( radians( -6.32479 ) ) * cos( radians( 107.322441 )   
 - radians(96.695329) ) + sin( radians(5.207654) ) * sin( radians( -6.32479 ) ) ) ) as KM ;  

Maka hasil radius yang didapat adalah :

1742,39355699897 km

Selamat mencoba. :)

Perintah untuk Drop All Table di Postgresql

Jika kita ingin melakukan drop semua table di postgres terkadang agak sulit dilakukan, karena prostgre tidak menyediakan satu perintah untuk melakukan drop semua table.
Cara yang dapat dilakukan mungkin delete table satu persatu. Klik kanan pada tabel, kemudian pilib drop.
Tapi kadang sering error atau gagal delete, karena tabel itu mungkin ada dependency nya dengan tabel lain.
Misalnya salah satu field di tabel itu digunakan sebagai foreign key di tabel lain. Sehingga kita harus mendelete terlebih dahulu tabel yg memakai foreign key itu.
Tapi kalau tabelnya banyak jadi merepotkan juga.

Ada salah satu trik untuk mendelete semua tabel di database. Yakni membuat script drop tabel memakai sql query. Berikut ini scriptnya :

 select 'drop table "' || tablename || '" cascade;' as command   
 from pg_tables where schemaname = 'public';   

'public' ada nama schema yg kita ingin drop semua tabelnya.

Maka hasilnya adalah sebagai berikut :

 drop table "brand" cascade;  
 drop table "demands_files" cascade;  
 drop table "ip_type" cascade;  
 drop table "locations" cascade;  
 drop table "ip_history" cascade;  
 drop table "ip_list" cascade;  
 drop table "division" cascade;  
 drop table "developers" cascade;  
 drop table "material_elements" cascade;  
 drop table "device" cascade;  
 drop table "ip_region" cascade;  
 drop table "files_design" cascade;  
 drop table "files" cascade;  
 drop table "material_types" cascade;  
 drop table "partners" cascade;  
 drop table "typeproject" cascade;  
 drop table "regional_telkomsel" cascade;  
 drop table "telkom_divisions" cascade;  
 drop table "roles" cascade;  
 drop table "users" cascade;  
 drop table "material_list" cascade;  
 drop table "users_roles" cascade;  
 drop table "demand_status" cascade;  
 drop table "demands_estimates" cascade;  
 drop table "demands" cascade;  
 drop table "stos" cascade;  

Copy paste hasil query nya. Kemudian di run semua querynya.  Maka otomatis semua tabel akan terhapus atau terdrop.
Selamat mencoba :)