Thanks Pavel, that works.

Pete
Molly's Revenge <http://www.mollysrevenge.com>




On Fri, Apr 8, 2011 at 4:36 AM, Pavel Ivanov <paiva...@gmail.com> wrote:

> Probably this could work:
>
> SELECT c1,c2,sum(t2.c3) / count(distinct t3.rowid),count(distinct t3.rowid)
> FROM t1 LEFT JOIN t2 on t2.key2=t1.key1
> LEFT JOIN t3 on t3.key3=t1.key1
> GROUP BY t1.key1
>
> And btw, you didn't say where your c1 and c2 come from but if they are
> from t1 and t1 has several rows with the same key1 but different c1
> and c2 then you will get random data as a result of the query.
>
>
> Pavel
>
>
> On Thu, Apr 7, 2011 at 8:31 PM, Pete <p...@mollysrevenge.com> wrote:
> > I am trying to use GROUP BY to summarise information from a main table
> and
> > two sub tables, e.g.:
> >
> >
> > SELECT c1,c2,sum(t2.c3),count(t3.c4) FROM t1 LEFT JOIN t2 on
> t2.key2=t1.key1
> > LEFT JOIN t3.key3=t1.key1 GROUP BY t1.key1
> >
> >
> > The result is that the count column returns the count of (the number of
> t2
> > entries * the number of t3 entries), and the sum column returns (the t2
> sum
> > value * the count of entries in t3).
> >
> >
> > For example if the sum of t2.c3 is actually 1000 (from 3 rows) and the
> count
> > of t3.c4 is 5, the sum column returns 5000 and the count column returns
> 15.
> >  If either of t2 or t3 has no qualifying entries, the calculation for the
> > other table is correct.
> >
> >
> > I guess GROUP BY isn't designed to deal with this type of situation.  Can
> > anyone suggest a way to do this?
> >
> >
> > Thanks,
> >
> > Pete
> > _______________________________________________
> > sqlite-users mailing list
> > sqlite-users@sqlite.org
> > http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
> >
>
>
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to