| 940 | } |
| 941 | |
| 942 | func (s *SQLTestSuite) TestGroup() { |
| 943 | sess := s.Session() |
| 944 | |
| 945 | type statsType struct { |
| 946 | Numeric int `db:"numeric"` |
| 947 | Value int `db:"value"` |
| 948 | } |
| 949 | |
| 950 | stats := sess.Collection("stats_test") |
| 951 | |
| 952 | err := stats.Truncate() |
| 953 | s.NoError(err) |
| 954 | |
| 955 | // Adding row append. |
| 956 | for i := 0; i < 100; i++ { |
| 957 | numeric, value := rand.Intn(5), rand.Intn(100) |
| 958 | _, err := stats.Insert(statsType{numeric, value}) |
| 959 | s.NoError(err) |
| 960 | } |
| 961 | |
| 962 | // Testing GROUP BY |
| 963 | res := stats.Find().Select( |
| 964 | "numeric", |
| 965 | db.Raw("count(1) AS counter"), |
| 966 | db.Raw("sum(value) AS total"), |
| 967 | ).GroupBy("numeric") |
| 968 | |
| 969 | var results []map[string]interface{} |
| 970 | |
| 971 | err = res.All(&results) |
| 972 | s.NoError(err) |
| 973 | |
| 974 | s.Equal(5, len(results)) |
| 975 | } |
| 976 | |
| 977 | func (s *SQLTestSuite) TestInsertAndDelete() { |
| 978 | sess := s.Session() |