>>> SELECT >>> a, >>> (SELECT MIN(b) FROM T1 WHERE a=t.a) AS B, >>> (SELECT MIN(c) FROM T1 WHERE a=t.a) AS C >>> FROM t1 t >>> GROUP BY a >> Why not >> select a, min(b) as b, min(c) as c from t1 group by a; >> ? > > It still does not quarantee that the valuse show for b and c are comming > from the same row...
select a, b, min(c) as c from (select a, min(b) as b from t1 group by a) join t1 using(a, b) group by a, b; ? 2018-06-30 15:45 GMT+02:00, Luuk <luu...@gmail.com>: > > > On 30-6-2018 15:39, Abroży Nieprzełoży wrote: >>> SELECT >>> a, >>> (SELECT MIN(b) FROM T1 WHERE a=t.a) AS B, >>> (SELECT MIN(c) FROM T1 WHERE a=t.a) AS C >>> FROM t1 t >>> GROUP BY a >> Why not >> select a, min(b) as b, min(c) as c from t1 group by a; >> ? > > It still does not quarantee that the valuse show for b and c are comming > from the same row... > > >> >> 2018-06-30 15:12 GMT+02:00, Luuk <luu...@gmail.com>: >>> On 30-6-2018 14:55, Keith Medcalf wrote: >>>> Note that this is SQLite3 specific (and specific to Sybase of the era >>>> where Microsoft SQL Server was actually just a rebranded Sybase, and >>>> Microsoft re-writes of SQL Server up to about 2000). Technically you >>>> cannot do a query of the form: >>>> >>>> SELECT c1, c2 >>>> FROM t1 >>>> GROUP BY c2; >>>> >>>> because each column in the select list must be either an aggregate or >>>> listed in the GROUP BY clause. SQLite3 allows c1 to be a bare column >>>> however and the value returned is taken from "some random row" of the >>>> group. If there are multiple such columns, they all come from the same >>>> row in the group. Although documented as a "random" row of the group, >>>> it >>>> is the first (or last) row visited in the group while solving the query >>>> (and this is of course subject to change but within the same version of >>>> SQLite3 will deterministically be the row either first or last in the >>>> visitation order -- the actual row may of course change depending on use >>>> of indexes, etc). You can re-write this part so it will work in other >>>> SQL >>>> dialects that strictly enforce the requirement for c1 to be either an >>>> aggregate or listed in the group by clause. >>>> >>>> --- >>>> The fact that there's a Highway to Hell but only a Stairway to Heaven >>>> says >>>> a lot about anticipated traffic volume. >>>> >>> Ok ,my highway to hell start here (regargind the use of SQL) >>> >>> In SQLite3 you are allowed to do this: >>> SELECT a,b,c >>> FROM t1 >>> GROUP BY a >>> >>> The values of 'b' and 'c' will be taken from a 'random' row... >>> >>> But if we rewrite this in SQL, i am getting something like this: >>> SELECT >>> a, >>> (SELECT MIN(b) FROM T1 WHERE a=t.a) AS B, >>> (SELECT MIN(c) FROM T1 WHERE a=t.a) AS C >>> FROM t1 t >>> GROUP BY a >>> >>> QUESTION: How does one get the proper relationship between 'B' and 'C'?, >>> i mean how can one be use that both values are from the same row? >>> This is not a problem to SQLite, because in SQLite the values of b and c >>> seems to be originating from the same row, but what about *SQL* (if that >>> exists...?) >>> >>> -- >>> some test results: >>> sqlite> insert into t1 values (1,1,2); >>> sqlite> insert into t1 values (1,2,1); >>> sqlite> insert into t1 values (2,2,1); >>> sqlite> insert into t1 values (2,1,2); >>> sqlite> select a,b,c from t1 group by a; >>> 1|2|1 >>> 2|1|2 >>> sqlite> SELECT >>> ...> a, >>> ...> (SELECT MIN(b) FROM T1 WHERE a=t.a) AS B, >>> ...> (SELECT MIN(c) FROM T1 WHERE a=t.a) AS C >>> ...> FROM t1 t >>> ...> GROUP BY a; >>> 1|1|1 >>> 2|1|1 >>> sqlite> >>> >>> _______________________________________________ >>> sqlite-users mailing list >>> sqlite-users@mailinglists.sqlite.org >>> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users >>> >> _______________________________________________ >> sqlite-users mailing list >> sqlite-users@mailinglists.sqlite.org >> http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > > _______________________________________________ > sqlite-users mailing list > sqlite-users@mailinglists.sqlite.org > http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users > _______________________________________________ sqlite-users mailing list sqlite-users@mailinglists.sqlite.org http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users