Hi, couldn't find this being asked before, so here goes:
I am creating a migration for a view which needs to 1) group & count rows
on a given field (:challenge_id). It then needs to 2) average the counts,
grouped by a *different* field (:text). Result should be columns for 'text'
and 'mean_selected'.
Part 1) I have achieved with the following code:
create_view :mean_selected, (DB[:challenges_images].where(selected: true).
left_join(:challenges, id: :challenge_id).where(solved: true).left_join(:
challenge_descriptions, text: :desc).select_group(:text,
:challenge_id).select_append
{ count(challenge_id).as(num_selected) })
This gives the following:
*text* *challenge_id* *num_selected*
text integer bigint
1 foo 3 3
2 bar 1 4
3 bar 2 5
4 bar 4 6
I now want to group on :text and average :num_selected. Result should be:
foo 3
bar 5
If I try simply chaining
.select_group(:text).select_append {avg(num_selected).as(mean_selected) }
To the above expression I get:
ERROR: column "num_selected" does not exist
Sure I'm missing somethign very obvious, but any hep would be greatly
appreciated.
Can post my schema if required.Thanks.
--
You received this message because you are subscribed to the Google Groups
"sequel-talk" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sequel-talk.
For more options, visit https://groups.google.com/d/optout.