DISTINCT

Distinct digunakan untuk membatasi agar data yang ditampilkan benar-benar unik. Isi salah satu kolom bisa sama. Tapi, jika semua kolom isinya sama, maka hanya satu saja yang akan ditampilkan. 

Sintaks :

  • Select distinct * From nama_tabel
  • Select distinct nama_kolom From nama_tabel
  • Select distinct nama_kolom1, nama_kolom2 From nama_tabel

Contoh Query :

  • Select Distinct kelas From siswa

Contoh kode program :

//install librarynya kalau belum ada
#include <iostream>
#include <sqlite3.h>

char *err;
typedef char stringku[30];

int callback_data(void *notused, int jkolom, char **dataku, char **kolom){
    for(int i=0;i<jkolom;i++){
        printf("%s ", dataku[i]);
    }
    return 0; 
}

int callback(void *notused, int jkolom, char **dataku, char **kolom){
   for(int i=0;i<jkolom;i++){
       printf("%s : %s\n", kolom[i], dataku[i]);
   }
   printf("\n");
   return 0;
}

void isi_database(sqlite3 *conn){
    char query[255];
    static stringku data[8][3]={{"Deri", "3A", "75"}, {"Panji", "3A", "95"}, {"Romi", "3A", "80"}, {"Doni", "3B", "70"}, {"Jennie", "3B", "60"}, {"Roni", "3C", "50"}, {"Hani", "3C", "45"}, {"Mini", "3C", "40"}};
	     
    sqlite3_exec(conn, "Create Table siswa(id INTEGER Primary Key, nama Text, kelas Text, nilai INTEGER);", 0, 0, &err); 
    //tambahkan data
    for(int i=0;i<8;i++){
        sprintf(query, "INSERT INTO siswa(id, nama, kelas, nilai) VALUES('%d', '%s', '%s', '%s')", i, data[i][0], data[i][1], data[i][2]);
        sqlite3_exec(conn, query, 0, 0, &err);
    }
}

int main(){
    int res=0;
    sqlite3 *conn=NULL;
    sqlite3_stmt *stmt=NULL;
    sqlite3_open("databaseku.dat", &conn);
	
    //jika database kosong, tambah tabel
    sqlite3_exec(conn, "Drop Table siswa", 0, 0, &err);
    isi_database(conn);

    //gunakan query
    printf("Kelas : \n");
    sqlite3_exec(conn, "SELECT distinct kelas FROM siswa", callback_data, 0, &err);
    printf("\n\nSiswa : \n");
    sqlite3_exec(conn, "SELECT * FROM siswa", callback, 0, &err);
    
    sqlite3_close(conn);
    return 0;
}
Output :
Kelas : 3A 3B 3C

Siswa :
id : 0
nama : Deri
kelas : 3A
nilai : 75

id : 1
nama : Panji
kelas : 3A
nilai : 95

id : 2
nama : Romi
kelas : 3A
nilai : 80

id : 3
nama : Doni
kelas : 3B
nilai : 70

id : 4
nama : Jennie
kelas : 3B
nilai : 60

id : 5
nama : Roni
kelas : 3C
nilai : 50

id : 6
nama : Hani
kelas : 3C
nilai : 45

id : 7
nama : Mini
kelas : 3C
nilai : 40