diesel
diesel copied to clipboard
Unable to group by date
Setup
Versions
- **Rust:1.76.0
- **Diesel:2
- **Database:mysql
- Operating System
Feature Flags
- **diesel:2
Problem Description
Thanks so much for a great project. While working with a feature to sum all the user_transactions and create a statistics by date, I have a problem with the group_by function that I don't find any solution on the internet. Please help.
Thanks so much This code does not compile :
user_transactions::table
.group_by(date(user_transactions::created_at))
.select((
sum(user_transactions::cash),
date(user_transactions::created_at),
))
.filter(user_transactions::user_id.eq(user_id))
.filter(user_transactions::transaction_type.eq(UserTransactionType::Commission))
.load::<(i64, NaiveDate)>(conn)
.await
.map_err(anyhow::Error::from)
What are you trying to accomplish?
What is the expected output?
What is the actual output?
.select(( | ^^^^^^ the trait
IsContainedInGroupBy<user_transactions::columns::created_at>
is not implemented forfunctions::date_and_time::date::date<user_transactions::columns::created_at>
--> app/src/repository/user_transaction.rs:48:10 | 48 | .select(( | ^^^^^^ the traitIsContainedInGroupBy<user_transactions::columns::created_at>
is not implemented forfunctions::date_and_time::date::date<user_transactions::columns::created_at>
| = help: the following other types implement traitIsContainedInGroupBy<T>
: <withdrawals::columns::updated_at as IsContainedInGroupBywithdrawals::columns::updated_at> <withdrawals::columns::updated_at as IsContainedInGroupBywithdrawals::columns::created_at> <withdrawals::columns::updated_at as IsContainedInGroupBywithdrawals::columns::notes> <withdrawals::columns::updated_at as IsContainedInGroupBywithdrawals::columns::status> <withdrawals::columns::updated_at as IsContainedInGroupBywithdrawals::columns::amount> <withdrawals::columns::updated_at as IsContainedInGroupBywithdrawals::columns::user_id> <withdrawals::columns::updated_at as IsContainedInGroupBywithdrawals::columns::id> <withdrawals::columns::created_at as IsContainedInGroupBywithdrawals::columns::updated_at> and 1428 others note: required foruser_transactions::columns::created_at
to implementValidGrouping<functions::date_and_time::date::date<user_transactions::columns::created_at>>
--> app/src/schema.rs:316:9 | 316 | created_at -> Timestamp, | ^^^^^^^^^^ = note: 1 redundant requirement hidden = note: required for(sum<Integer, cash>, date<created_at>)
to implementValidGrouping<functions::date_and_time::date::date<user_transactions::columns::created_at>>
= note: the full type name has been written to '/app/target/debug/deps/app-8840f9eb5889a010.long-type-1122692697415527159.txt' = note: required forSelectStatement<FromClause<table>, DefaultSelectClause<FromClause<table>>, ..., ..., ..., ..., ...>
to implementSelectDsl<(functions::aggregate_folding::sum::sum<diesel::sql_types::Integer, user_transactions::columns::cash>, functions::date_and_time::date::date<user_transactions::columns::created_at>)>
= note: the full type name has been written to '/app/target/debug/deps/app-8840f9eb5889a010.long-type-17702273429917501699.txt'
Are you seeing any additional errors?
Steps to reproduce
Checklist
- [x] I have already looked over the issue tracker and the discussion forum for similar possible closed issues.
- [x] This issue can be reproduced on Rust's stable channel. (Your issue will be closed if this is not the case)
- [x] This issue can be reproduced without requiring a third party crate