在 golang 应用程序中,我对这样的表进行查询:
| ID | AGG_YEAR | AGG_MONTH | GENDER | AGE_RANGE | INCOME_RANGE | TOTAL |
|-----------|----------|-----------|--------|-----------|--------------|-------|
| 107502389 | 2019 | 7 | F | 18_29 | 1000_2000 | 15 |
| 107502389 | 2019 | 7 | F | 18_29 | 2000_4000 | 42 |
| 107502389 | 2019 | 7 | F | 30_44 | 1000_2000 | 25 |
| 107502389 | 2019 | 7 | F | 30_44 | 2000_4000 | 63 |
| 107502389 | 2019 | 7 | M | 18_29 | 1000_2000 | 30 |
| 107502389 | 2019 | 7 | M | 18_29 | 2000_4000 | 18 |
| 107502389 | 2019 | 7 | M | 30_44 | 1000_2000 | 36 |
| 107502389 | 2019 | 7 | M | 30_44 | 2000_4000 | 19 |
此表存储有关某个月内具有某个工资水平的男性和女性的总数的信息。通常,在对数据库进行一次查询之后,每条记录都会被一一解析:
type Entry struct {
ID int `json:"id"`
AggYear int `json:"agg_year"`
AggMonth int `json:"agg_month"`
Gender string `json:"gender"`
AgeRange string `json:"age_range"`
IncomeRange string `json:"income_range"`
Total int `json:"total"`
}
var entries []Entry
rows, err := database.Query("***"); if err != nil {
fmt.Println(err)
return
}
defer rows.Close()
for rows.Next() {
var entry Entry
if err = rows.Scan(&entry.ID, &entry.AggMethod, &entry.AggYear, &entry.AggMonth, &entry.Gender, &entry.AgeRange, &entry.IncomeRange, &entry.Total); err != nil {
fmt.Println(err)
return
}
entries = append(entries, entry)
}
type IncomeDetails struct {
IncomeRange string `json:"income_range"`
Total int `json:"total"`
}
type AgeDetails struct {
AgeRange string `json:"age_range"`
Details []IncomeDetails `json:"details"`
}
我想知道将以下值分组的最佳方法,如下例所示?我想了解动作的顺序。我将不胜感激任何帮助。
潇湘沐
相关分类