I know sum() is work. This issue occurs only for TEXT.

When I use a user-defined aggregate CONCAT()
it led to a stange result.
suppose the length of original text is 1
length of output text via GROUP+concat() is 5
while via ORDER, the length of final text is 1 (should be 5)

ps1. run on winxp, compile by gcc(mingw)
ps2. may u try concat() written by me
http://wakka.myweb.hinet.net/sqlite3ext.zip


2007/10/14, [EMAIL PROTECTED] <[EMAIL PROTECTED]>:
> Wakka <[EMAIL PROTECTED]> wrote:
> > I get into trouble about using GROUP and ORDER.
> >
> > When I use GROUP and ORDER together, aggregate function
> > can't work, could someone explain it?
>
> Works OK when I try it.  I don't have your custom concat()
> function, so I had to use sum() instead.  Here is my test:
>
>  CREATE TABLE t1(a);
>  INSERT INTO t1 VALUES(100);
>  INSERT INTO t1 VALUES(20);
>  INSERT INTO t1 VALUES(3);
>  CREATE TABLE t2(b);
>  INSERT INTO t2 VALUES('a');
>  INSERT INTO t2 VALUES('b');
>  INSERT INTO t2 VALUES('c');
>
>  SELECT b, sum(a)
>    FROM t2, t1
>   GROUP BY b;
>  SELECT '----------------------';
>  SELECT b, sum(a)
>    FROM t2, t1
>   GROUP BY b
>   ORDER BY b;
>
> And I get the same output either way:
>
>   a|123
>   b|123
>   c|123
>   ----------------------
>   a|123
>   b|123
>   c|123
>
>
> >
> > ### create two table
> > CREATE TABLE book (id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE);
> > INSERT INTO book VALUES (0);
> > INSERT INTO book VALUES (0);
> > INSERT INTO book VALUES (0);
> > CREATE TABLE author (id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE);
> > INSERT INTO author VALUES (0);
> > INSERT INTO author VALUES (0);
> > INSERT INTO author VALUES (0);
> >
> > book    author
> >  id       id
> > ----    ------
> >  1        1
> >  2        2
> >  3        3
> >
> > ### query 1
> > SELECT book.id concat(author.id, ',')
> > FROM book, author
> > GROUP BY book.id;
> >
> > book.id   author.id
> > --------------------
> >   1       1,2,3
> >   2       1,2,3
> >   3       1,2,3
> >
> > ### query 2
> > SELECT book.id concat(author.id, ',')
> > FROM book, author
> > GROUP BY book.id
> > ORDER BY book.id;
> >
> > book.id   author.id
> > --------------------
> >   1       1
> >   2       1
> >   3       1
> >
> >
> > The result of query 2 is strange.
> > Here is the my expected result.
> >
> > book.id   author.id
> > --------------------
> >   1       1,2,3
> >   2       1,2,3
> >   3       1,2,3
> >
> > I had try text as source data too, the result is the same.
> > it appears that ORDER use the original length of the data.
> > How to resolve/workaround this issue??
> >
>
>
>
> -----------------------------------------------------------------------------
> To unsubscribe, send email to [EMAIL PROTECTED]
> -----------------------------------------------------------------------------
>
>

-----------------------------------------------------------------------------
To unsubscribe, send email to [EMAIL PROTECTED]
-----------------------------------------------------------------------------

Reply via email to