Last active
September 26, 2016 14:10
-
-
Save trietphm/9b8b14cad7af74d8ac28743161a79d1a to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package main | |
import ( | |
"bufio" | |
"encoding/csv" | |
"fmt" | |
"io" | |
"log" | |
"os" | |
"strconv" | |
"strings" | |
"github.com/gosimple/slug" | |
"github.com/jinzhu/gorm" | |
_ "github.com/lib/pq" | |
) | |
func main() { | |
db, err := gorm.Open("postgres", "user=golang password=123456 dbname=grokking") | |
if err != nil { | |
log.Fatal(err) | |
} | |
insertData(db) | |
} | |
func insertData(db *gorm.DB) error { | |
file, err := os.Open("data.csv") | |
if err != nil { | |
return err | |
} | |
defer file.Close() | |
r := csv.NewReader(bufio.NewReader(file)) | |
skipTitle := true | |
for { | |
record, err := r.Read() | |
if err == io.EOF { | |
break | |
} | |
if err != nil { | |
log.Fatal(err) | |
} | |
if skipTitle { | |
fmt.Println(record) | |
skipTitle = false | |
continue | |
} | |
var age *int | |
t, err := strconv.Atoi(record[2]) | |
if err == nil { | |
age = &t | |
} | |
province := correctProvince(record[3]) | |
err = db.Exec("INSERT INTO data_samples(date_recruited, gender, age, province, province_normalize, country) VALUES(?, ?, ?, ?, ?, ?)", | |
record[0], record[1], age, record[3], province, record[4]).Error | |
fmt.Println("Insert: ", record[0], record[1], age, province, record[4]) | |
if err != nil { | |
log.Println(err) | |
} | |
} | |
return nil | |
} | |
func correctProvince(province string) string { | |
slug.CustomSub = map[string]string{ | |
"tp": "", | |
"city": "", | |
} | |
newProvince := strings.ToLower(province) | |
newProvince = slug.Make(newProvince) | |
newProvince = strings.Replace(newProvince, "-", " ", -1) | |
newProvince = strings.Replace(newProvince, "thanh pho", " ", -1) | |
newProvince = strings.TrimSpace(newProvince) | |
switch newProvince { | |
case "sai gon", "hcm", "hcmc", "sg", "hochiminh": | |
newProvince = "ho chi minh" | |
case "hn", "hanoi": | |
newProvince = "ha noi" | |
} | |
return newProvince | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2016-01-19 04:36:00 | Female | 13 | Hồ Chí Minh | Vietnam | |
---|---|---|---|---|---|
2016-01-19 03:59:00 | Female | 19 | Thành phố Hồ Chí Minh | Vietnam | |
2016-01-18 14:56:00 | Female | 18 | Ho Chi Minh | Vietnam | |
2016-01-18 12:29:00 | Female | 19 | ho chi minh | Vietnam | |
2016-01-18 11:37:00 | Female | 19 | Thành phố Hồ Chí Minh | Vietnam | |
2016-01-18 03:50:00 | Female | 18 | tp hcm | Vietnam | |
2016-01-17 14:01:00 | Female | 19 | Tp. HCM | Vietnam | |
2016-01-17 12:19:00 | Female | 16 | Hồ Chí Minh | Vietnam | |
2016-01-17 10:48:00 | Female | 16 | TP Hồ Chí Minh | Vietnam | |
2016-01-17 09:04:00 | Female | 12 | Ho Chi Minh | Vietnam | |
2016-01-17 08:56:00 | Female | 16 | Hồ Chí Minh | Vietnam | |
2016-01-17 07:18:00 | Female | 17 | ho chi minh city | Vietnam | |
2016-01-17 07:14:00 | Female | 19 | Tp. HCM | Vietnam | |
2016-01-16 18:28:00 | Female | 19 | hcm | Vietnam | |
2016-01-16 16:10:00 | Female | 18 | tp hcm | Vietnam | |
2016-01-16 15:28:00 | Female | 16 | Hồ Chí Minh | Vietnam | |
2016-01-16 14:55:00 | Female | 17 | tphcm | Vietnam | |
2016-01-16 12:26:00 | Female | 18 | tp hcm | Vietnam | |
2016-01-16 10:53:00 | Female | 16 | Hồ Chí Minh | Vietnam | |
2016-01-16 06:33:00 | Female | 16 | Hồ Chí Minh | Vietnam | |
2016-01-16 04:16:00 | Female | 18 | Thành phố Hồ Chí Minh | Vietnam | |
2016-01-15 17:06:00 | Female | 18 | ho chi minh | Vietnam | |
2016-01-15 16:12:00 | Female | 19 | Hồ Chí Minh | Vietnam | |
2016-01-15 12:01:00 | Female | 15 | Hồ Chí Minh | Vietnam | |
2016-01-15 10:32:00 | Female | 14 | Thành phố Hồ Chí Minh | Vietnam | |
2015-12-28 11:07:00 | Female | 17 | tp hcm | Vietnam | |
2015-12-28 05:26:00 | Female | 18 | TP Ho Chi Minh | Vietnam | |
2015-12-27 02:16:00 | Female | 18 | tp hcm | Vietnam | |
2015-12-27 01:56:00 | Female | 18 | tphcm | Vietnam | |
2015-12-26 16:13:00 | Female | 19 | Hồ Chí Minh | Vietnam | |
2015-12-26 13:10:00 | Female | 19 | tp hcm | Vietnam | |
2015-12-26 07:54:00 | Female | 13 | TP Hồ Chí Minh | Vietnam | |
2015-12-26 06:00:00 | Female | 12 | Hồ Chí Minh | Vietnam | |
2015-12-26 05:51:00 | Female | 14 | Thành phố Hồ Chí Minh | Vietnam | |
2015-12-25 10:35:00 | Female | 16 | Hồ Chí Minh | Vietnam | |
2015-12-25 01:39:00 | Female | 14 | tphcm | Vietnam | |
2015-12-24 14:50:00 | Female | 15 | Hồ Chí Minh | Vietnam | |
2015-12-24 10:49:00 | Female | 19 | Thành phố Hồ Chí Minh | Vietnam | |
2015-12-24 09:38:00 | Female | 13 | Tp. HCM | Vietnam | |
2015-12-24 08:25:00 | Female | 14 | Thành phố Hồ Chí Minh | Vietnam | |
2015-12-23 14:48:00 | Female | 18 | Tp. Hồ Chí Minh | Vietnam | |
2015-12-23 13:21:00 | Female | 15 | HCM | Vietnam | |
2015-12-23 12:03:00 | Female | 15 | Hồ Chí Minh | Vietnam | |
2015-12-23 11:18:00 | Female | 18 | tp hcm | Vietnam | |
2015-12-23 10:26:00 | Female | 13 | Ho Chi Minh | Vietnam | |
2015-12-23 10:03:00 | Female | 11 | Thành phố Hồ Chí Minh | Vietnam | |
2015-12-23 08:44:00 | Female | 18 | Ho Chi Minh | Vietnam | |
2015-12-23 07:40:00 | Female | 19 | Tp. HCM | Vietnam | |
2015-12-20 14:15:00 | Female | 18 | TP Hồ Chí Minh | Vietnam | |
2015-12-20 14:09:00 | Female | 19 | TP Ho Chi Minh | Vietnam | |
2015-12-20 14:06:00 | Female | 12 | Tp. HCM | Vietnam | |
2015-12-20 13:31:00 | Female | 19 | Hồ Chí Minh | Vietnam | |
2015-12-20 13:28:00 | Female | 11 | HCM | Vietnam | |
2015-12-20 13:15:00 | Female | 19 | tp hcm | Vietnam | |
2015-12-20 12:31:00 | Female | 18 | tp hcm | Vietnam | |
2015-12-18 04:21:00 | Female | 19 | Ho Chi Minh | Vietnam | |
2015-12-18 04:14:00 | Female | 11 | TP Hồ Chí Minh | Vietnam | |
2015-12-14 05:42:00 | Female | 14 | HCM | Vietnam | |
2015-12-14 04:14:00 | Female | 18 | TP Hồ Chí Minh | Vietnam | |
2015-12-14 01:26:00 | Female | 14 | Hồ Chí Minh | Vietnam | |
2015-12-14 01:25:00 | Female | 19 | TP Hồ Chí Minh | Vietnam | |
2015-12-13 14:18:00 | Female | 18 | Ho Chi Minh | Vietnam | |
2015-12-13 14:04:00 | Female | 18 | tp hồ chí minh | Vietnam | |
2015-12-13 13:24:00 | Female | 19 | TP.HCM | Vietnam | |
2015-12-13 13:12:00 | Female | 8 | Ho Chi Minh | Vietnam | |
2015-12-13 12:15:00 | Female | 19 | Hồ Chí Minh | Vietnam | |
2015-12-13 05:10:00 | Female | 17 | TP Ho Chi Minh | Vietnam | |
2015-12-13 02:36:00 | Female | 15 | Thành phố Hồ Chí Minh | Vietnam | |
2015-12-12 15:20:00 | Female | 13 | TP Ho Chi Minh | Vietnam | |
2015-12-12 09:07:00 | Female | 13 | Thành phố Hồ Chí Minh | Vietnam | |
2015-12-12 03:18:00 | Female | 13 | TP.HCM | Vietnam | |
2015-12-11 15:28:00 | Female | 18 | tp hcm | Vietnam | |
2015-12-11 14:55:00 | Female | 19 | Hồ Chí Minh | Vietnam | |
2015-12-11 14:52:00 | Female | 16 | Hồ Chí Minh | Vietnam | |
2015-12-11 10:17:00 | Female | 12 | HCM | Vietnam | |
2015-12-11 10:11:00 | Female | 13 | Thành phố Hồ Chí Minh | Vietnam | |
2015-12-11 10:08:00 | Female | 12 | hồ chí minh | Vietnam | |
2015-12-11 09:31:00 | Female | 14 | Tp. HCM | Vietnam | |
2015-12-11 09:24:00 | Female | 18 | TP.HCM | Vietnam | |
2015-12-11 07:53:00 | Female | 19 | Hồ Chí Minh | Vietnam | |
2015-12-11 06:58:00 | Female | 16 | Hồ Chí Minh | Vietnam | |
2015-12-11 05:47:00 | Female | 15 | TP Ho Chi Minh | Vietnam |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2016-01-17 22:52:00 | Male | 25 | ho chi minh | Vietnam | |
---|---|---|---|---|---|
2016-01-17 22:40:00 | Male | 24 | Ha Noi | Vietnam | |
2016-01-17 22:31:00 | Male | 21 | tp hcm | Vietnam | |
2016-01-17 21:09:00 | Male | 19 | Ha Noi | Vietnam | |
2016-01-17 19:29:00 | Male | 28 | ha noi | Vietnam | |
2016-01-17 18:45:00 | Male | 42 | TP Ho Chi Minh | Vietnam | |
2016-01-17 18:32:00 | Male | 34 | Ho Chi Minh | Vietnam | |
2016-01-17 18:14:00 | Male | 24 | TP Hồ Chí Minh | Vietnam | |
2016-01-17 18:04:00 | Male | 33 | Ho Chi Minh | Vietnam | |
2015-12-13 21:58:00 | Male | 19 | Ha Noi | Vietnam | |
2015-12-13 21:55:00 | Male | 25 | HCM | Vietnam | |
2015-12-13 21:45:00 | Male | 19 | Ho Chi Minh | Vietnam | |
2015-12-13 20:31:00 | Male | 31 | Ho Chi Minh | Vietnam | |
2015-12-13 20:05:00 | Male | 26 | Ha Noi | Vietnam | |
2015-12-13 19:47:00 | Male | 24 | Ha Noi | Vietnam | |
2015-12-13 19:38:00 | Male | 28 | Hà Nội | Vietnam | |
2015-12-13 19:18:00 | Male | 27 | tp hcm | Vietnam | |
2015-12-13 19:12:00 | Male | 29 | Hanoi | Vietnam | |
2015-12-13 19:01:00 | Male | 23 | Ha Noi | Vietnam | |
2015-12-13 18:36:00 | Male | 21 | sài gòn | Vietnam | |
2015-12-13 18:34:00 | Female | 22 | Ha Noi | Vietnam | |
2015-12-13 18:31:00 | Male | 25 | Hồ Chí Minh | Vietnam | |
2015-12-13 18:29:00 | Male | 22 | Hồ Chí Minh | Vietnam | |
2015-12-13 18:23:00 | Male | 29 | Hà Nội | Vietnam | |
2015-12-13 18:17:00 | Male | 28 | hanoi | Vietnam | |
2015-12-13 18:10:00 | Female | 25 | Ha Noi | Vietnam | |
2015-12-13 18:07:00 | Male | 29 | Ha Noi | Vietnam |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
CREATE TABLE public.data_samples ( | |
id serial PRIMARY KEY, | |
date_recruited timestamp NULL, | |
gender text NULL, | |
age int4 NULL, | |
province_normalize text NULL, | |
province text NULL, | |
country text NULL | |
); | |
create index data_samples_gender_age_province on data_samples(gender, age, province_normalize, country); | |
---1--- | |
select count(*) | |
from data_samples | |
where age > EXTRACT(YEAR from age(date '1984-05-14')); | |
--Res: 1842 | |
---2--- | |
select count(*) | |
from data_samples | |
where province_normalize = 'ho chi minh'; | |
--Res: 2545 | |
---3--- | |
select date_recruited, gender, age, province, country | |
from data_samples | |
where province_normalize = 'ho chi minh' | |
and age < 20 and gender='Female'; | |
--Res: q3.csv | |
---4--- | |
select date_recruited, gender, age, province, country | |
from data_samples | |
where (province_normalize = 'ho chi minh' or province_normalize = 'ha noi') | |
and EXTRACT(DOW FROM date_recruited) = 0 and EXTRACT(HOUR FROM date_recruited) between 18 and 22; | |
--Res: q4.csv |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment