Wednesday, January 18, 2023

Cara Delete table di Redshift

 


    Hallo mabro, kali ini gua pengen catet lagi ini pengetahuan yang baru gua dapetin. Intinya mah ini tu catatan buat gua si, biar gua gak lupa. Tapi mungkin catatan gua bisa bermafaat untuk yang lain, ya jadi gua share saja disini. 
    Okeh,,, karena sebelumnya gua lebih sering buat script SQL dan SQL Server sebagai databasenya. Nah sekarang gua lebih sering menggunakan Redshift untuk databasenya. Sehingga ada beberapa function script yang berbeda dengan SQL Server. Namun secara keseluruhan hampir sama cuma ada beda dibeberapa bagian saja. 
    Jadi saat ini gua mau share terkait logic untuk Delete table berdasarkan table yang lain untuk filternya. Nanti tulils dibawah yang jadi perbedaan nya. : 

SQL Server 

DELETE FROM EDW_FINANCESOD.T_SOD_CONFLICT SOD 
INNER JOIN (
SELECT CREATED_BY_NAME, COMPANY_CODE, PERIOD_OF_BASELINE_DOCUMENT,COUNT(*) 'COUNT_BASELINE_DOCUMENT'
FROM (
SELECT  DISTINCT CREATED_BY_NAME, COMPANY_CODE, PERIOD_OF_BASELINE_DOCUMENT,BASELINE_DOCUMENT  
FROM EDW_FINANCESOD.T_SOD_CONFLICT WHERE SOD_RULE IN ('R040','R140','R150')
) X
GROUP BY CREATED_BY_NAME, COMPANY_CODE, PERIOD_OF_BASELINE_DOCUMENT
) DISTINCT_SOD ON SOD.CREATED_BY_NAME = DISTINCT_SOD.CREATED_BY_NAME 
AND SOD.COMPANY_CODE = DISTINCT_SOD.COMPANY_CODE 
AND SOD.PERIOD_OF_BASELINE_DOCUMENT = DISTINCT_SOD.PERIOD_OF_BASELINE_DOCUMENT 
WHERE DISTINCT_SOD.COUNT_BASELINE_DOCUMENT > 1 

Redshift : 
DELETE T_SOD_CONFLICT_STAGING 
FROM 
(
    SELECT CREATED_BY_NAME, COMPANY_CODE, PERIOD_OF_BASELINE_DOCUMENT,COUNT(*) AS COUNT_BASELINE_DOCUMENT
    FROM (
        SELECT  DISTINCT CREATED_BY_NAME, COMPANY_CODE, PERIOD_OF_BASELINE_DOCUMENT,BASELINE_DOCUMENT  FROM T_SOD_CONFLICT_STAGING WHERE SOD_RULE IN ('R040','R140','R150')
        ) X
    GROUP BY CREATED_BY_NAME, COMPANY_CODE, PERIOD_OF_BASELINE_DOCUMENT
) DISTINCT_SOD 
Where 
(
    T_SOD_CONFLICT_STAGING.CREATED_BY_NAME = DISTINCT_SOD.CREATED_BY_NAME 
AND T_SOD_CONFLICT_STAGING.COMPANY_CODE = DISTINCT_SOD.COMPANY_CODE 
AND T_SOD_CONFLICT_STAGING.PERIOD_OF_BASELINE_DOCUMENT = DISTINCT_SOD.PERIOD_OF_BASELINE_DOCUMENT 
and DISTINCT_SOD.COUNT_BASELINE_DOCUMENT = 1
);

Nah,,, tu diatas bedanya. 
Biar gak puyeng gua tandain warna merah di script nya. 
1. Beda di cara delete nya 
2. beda dicara join table utama dengan table lain nya

kalo masih bingung kabarin gua di komen ya ...



Share:

Sunday, January 15, 2023

Cara Mengambil Tanggal dan conversi ke tanggal negara lain untuk Redhsift





Jadi masalahnya itu, ketika gua lagi ngerjain project yang dari Singapura. Jadi jam nya harus disesuaikan dengan jam yang ada disana. oleh karena itu, mau gak mau gua harus nambahin logic agar jam nya sama dengan yang ada di Singapur. 

Jadi begini caranya :

select DATEADD('hour',8,getdate())

Penjelasan nya : 

- DateAdd = Nama fuction nya 

- 'hour' = ini bagian mana yang mau di tambahkan atau dikurangi. Karena mau menyesuaikan dengan jam Singapur maka harus +8 yang awalnya kan Indonesia itu +7. Untuk negara lain tinggal menyesuaikan yah 

- 8 = ini merupakan conversi negara tujuan nya.  Lu bisa lihat dibawa yah buat perbandingan nya. 

- getadate() = untuk mendapatkan tanggal dan jam saat ini. 


Ini table conversi waktu Indonesia dengan beberapa negara di dunia. 

Waktu di Indonesia Negara Waktu Selisih Keterangan
07.00 (UTC +7) Malaysia 08:00 (UTC +8) +1 jam Hari yang sama
07.00 (UTC +7) Thailand 07.00 (UTC +7) - Hari yang sama
07.00 (UTC +7) Filipina 08.00 (UTC +8) +1 jam Hari yang sama
07.00 (UTC +7) Brunei Darussalam 08.00 (UTC +8) +1 jam Hari yang sama
07.00 (UTC +7) Singapura 08.00 (UTC +8) +1 jam Hari yang sama
07.00 (UTC +7) Vietnam 07.00 (UTC+7) - Hari yang sama
07.00 (UTC +7) Laos 07.00 (UTC +7) - Hari yang sama
07.00 (UTC +7) Myanmar 06.30 (UTC +6:30) -30 menit Hari yang sama
07.00 (UTC +7) Kamboja 07.00 (UTC +7) - Hari yang sama
07.00 (UTC +7) Amerika Serikat 19.00 (UTC -5) -12 jam Hari sebelumnya
07.00 (UTC +7) Korea Selatan 09.00 (UTC +9) +2 jam Hari yang sama
07.00 (UTC +7) Australia (Canberra) 11.00 (UTC +11) +4 jam Hari yang sama
07.00 (UTC +7) Belanda 01.00 (UTC +1) -6 jam Hari yang sama
07.00 (UTC +7) Perancis 01.00 (UTC +1) -6 jam Hari yang sama
07.00 (UTC +7) Italia 01.00 (UTC +1) -6 jam Hari yang sama
07.00 (UTC +7) Brasil (Rio de Janeiro) 21.00 (UTC -3) -10 jam Hari sebelumnya
07.00 (UTC +7) Argentina 21.00 (UTC -3) -10 jam Hari sebelumnya
07.00 (UTC +7) Uni Emirat Arab (Dubai) 04.00 (UTC +4) -3 jam Hari yang sama
07.00 (UTC +7) Vatikan 01.00 (UTC +1) -6 jam Hari yang sama
07.00 (UTC +7) Turki (Ankara) 03.00 (UTC +3) -4 jam Hari yang sama
07.00 (UTC +7) Timor Leste (Dili) 09.00 (UTC +9) +2 jam Hari yang sama
07.00 (UTC +7) Spanyol (Madrid) 01.00 (UTC +1) -6 jam Hari yang sama
07.00 (UTC +7) Pakistan 05.00 (UTC +5) -2 jam Hari yang sama
07.00 (UTC +7) Mesir (Kairo) 02.00 (UTC +2) -5 jam Hari yang sama
07.00 (UTC +7) Jerman (Berlin) 01.00 (UTC +1) -6 jam Hari yang sama

Jika lu udah baca postingan gua, tinggalin jejak ya dengan komen di postingan gua. Biar gua tahu kalau postingan gua ini bermanfaat. 
Share:

Tuesday, December 27, 2022

Cara Menampilkan note / catatan dalam proses running manual Talend

 




        Hai hai hallo, 
kali ini gua mau berbagi pengetahuan lagi. 
Seperti yang pernah gua info kemarin-kemarin, gua sekarang ada maenan baru. Ya,,, sekarang gua sedang belajar talend studio. 
        

Masalah :     
        Dan untuk saat ini gua menemukan case, dimana dari flow Component talend yang gua buat dan pas di running, gua gak tahu prosesnya udah sampai mana. Karena gak ada yang menandakan bahwa sekarang sedang dalam tahap yang mana. 

Solusi :        
        Oleh karena itu, solusinya adalah dengan menambahkan tJava 
        Klik 2x pada komponen tJava kemudian lu bisa setting dengan kodingan seperti dibawah ini :

                        System.Out.println("...Disini Tempat Menaruh Note/Penanda....")

Oke, setelah itu lu tinggal hubungkan dah tuh mau taruh dimana si komponen tJava itu. 
kalau gua mau disimpan setelah proses insert data, jadi untuk menandakan bahwa proses insertnya sudah berhasil. 
Kalo udah, tinggal lu jalanin dah ,,, 
Ini tampilan sebelum gua tambahin tJava
Dan ini tampilan setelah gua tambahin tJava
        Silahkan lu cobain dah ya,,,
Kalau lu udah coba dan berhasil kabarin gua di komen ya, biar gua tahu kalau postingan gua ini bermanfaat. 

Terimakasih lu udah baca postingan gua sampe bawah ya.
Salam Belajar Terooooos








Share:

Wednesday, December 21, 2022

Monday, November 14, 2022

Cara Membuat urutan data dari masing-masing menggunakan Row_Number()

 

Hallo mabro, 

Hari ini gua mau sharing kembali terkait SQL nih. 

Jadi sebenarnya yang gua posting disini adalah kejadian-kejadian yang gua alami ketika bekerja dan solving yang gua lakukan. Jadi ibaratnya ini mah curhat aja, mungkin dikemudian hari gua menemukan masalah yang sama ato lebih bagus lagi kalau tulisan gua ini bisa memberikan manfaat. 

Oke langsung aja, 

Jadi ceritanya, gua punya data kaya gini 

nah, dari data diatas gua ingin mengambil hanya 1 nasabah dari masing-masing Alamat 

Gimana caranya ? tahu gak ?

Kalo versi gua, gua pake cara begini nih : 

;with x as (

Select *,ROW_NUMBER () over (PARTITION by Alamat order by Id_Nasabah) 'Urutan' 

from Nasabah n

)

Select * from X where urutan = 1

Dan kalau sudah gua jalanin maka hasilnya seperti dibawah ini 









Share:

Wednesday, October 26, 2022

Mengatasi Speker Bunyi Kresek kresek / Menon-aktifkan Speker kiri atau kanan

 Hallo broh,,, 

Kali ini gua mau sharing tentang masalah yang ada dilaptop gua. 

Jadi penyakit laptop gua yang sekarang itu spekernya sangat merdu sekali, sampe terdengar bunyi kresek kresek. Nah itu kejadiannya hanya sebelah doang, yang sebelahnya lagi normal tidak ada bunyi kresek kresek nya. 

Nah,,, karena ini laptop kantor, dan gua saat ini masih full WFH jadi males banget harus ke kantor hanya untuk benerin speker laptopnya.

Jadi gua akalin aja settingan spekernya biar gak bunyi kresek-kresek. Dan akhirnya gua hanya aktifkan speker yang normal dan yang bunyi kresek kresek nya gua non-aktifkan atau gua kecilin volume nya. 

Untuk langkah-langkahnya kaya gini nih :

1. Klik tanda panah ke atas yang ada di pojok kanan bawah layar laptop lu

2. Klik kanan pada icon speker dan pilih "Open Volume Mixer"


3. Kemudian klik lagi speker


4. Pada tab "Levels" klik tombol "Balance"

5. Kalo udah tinggal diatur dah speker yang kiri atau yang kanan yang mau dimatiin, tinggal dikecilin aja 

Oh iya, jadi ceritanya yang bunyi kresek kresek di laptop gua itu yang sebelah kanan, jadi gua matiin aja speker yang kanan biar yang bunyi hanya speker yang kiri saja. 

Dan Alhamdulillah jadi jelas suaranya, yaaa meskipun jadi rada kecil suaranya gak masalah lah dari pada kresek kresek jadi kurang jelas suaranya. Apalagi klo lagi meeting duuhhhhhh,,, mengganggu banget. 

Okeh, sekian dulu ya sharing gua kali ini. Semoga membantu

Ohiya, jika lu udah baca postingan gua ini, tolong tinggalin jejak ya. Biar gua tahu kalau postingan gua ini ada manfaatnya. 

Terimakasih






Share:

Wednesday, October 19, 2022

Cara Cleansing Kata/Huruf - Mengambil hanya angka / huruf


 



Hallo bro, 

kali ini gua mau share bagaimana caranya agar bisa mengambil angka saja, atau huruf saja dalam 1 kolom 

Misal datanya : Serlok234Maseh

Yang mau kita ambil itu hanya angka 234 nya saja 

atau yang kita mau ambil itu hanya huruf SerlokMaseh tanpa ada angka nya


Nih langsung prakterikin aja scriptnya dibawah :


drop function fn_RemoveAlfaNumeric

--Create Function

CREATE FUNCTION [dbo].[fn_RemoveAlfaNumeric]

(

    @String NVARCHAR(MAX), 

    @MatchExpression VARCHAR(255)

)

RETURNS NVARCHAR(MAX)

AS

BEGIN

    SET @MatchExpression =  '%['+@MatchExpression+']%'


    WHILE PatIndex(@MatchExpression, @String) > 0

        SET @String = Stuff(@String, PatIndex(@MatchExpression, @String), 1, '')


    RETURN @String


END

--Hanya alfabet:

SELECT dbo.fn_RemoveAlfaNumeric('a1!s2@d3#f4$', '^a-z')

--Hanya numerik:

SELECT dbo.fn_RemoveAlfaNumeric('a1!s2@d3#f 4$', '^0-9')

--Hanya alfanumerik:

SELECT dbo.fn_RemoveAlfaNumeric('a1!s2@d3#f4$', '^a-z0-9')

--Non-alfanumerik:

SELECT dbo.fn_RemoveAlfaNumeric('a1!s2@d3#f4$', 'a-z0-9')

Share: