On Tue, Mar 9, 2010 at 6:18 AM, Tim Romano <tim.rom...@yahoo.com> wrote: > Wrapping a column in the min() function causes a query that returns no > rows to return a row? > > select c from T where 1=2 // returns 0 rows
The above is correct SQL, and the answer is correct. > select min(c) from T where 1=2 // returns 1 row You should be getting 0 rows; I do. What version of sqlite are you running? SQLite version 3.6.19 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> CREATE TABLE t (m); sqlite> INSERT INTO t VALUES (88); sqlite> INSERT INTO t VALUES (89); sqlite> SELECT * FROM t; m ---------- 88 89 sqlite> SELECT Min(m) AS m FROM t WHERE 1=2; m ---------- sqlite> SELECT Min(m) FROM t; Min(m) ---------- 88 > select min(88,99) from T where 1=2 // returns 0 rows The above is correct SQL and the answer is correct. Per the docs, "Note that min() is a simple function when it has 2 or more arguments but operates as an aggregate function if given only a single argument." Finally, note that when returning both aggregate and non-aggregate columns, you should use the GROUP BY clause. I believe that SQLite will return rows even without GROUP BY, but the answer may be undependable. > > Tim Romano > .. -- Puneet Kishor http://www.punkish.org Carbon Model http://carbonmodel.org Charter Member, Open Source Geospatial Foundation http://www.osgeo.org Science Commons Fellow, http://sciencecommons.org/about/whoweare/kishor Nelson Institute, UW-Madison http://www.nelson.wisc.edu ----------------------------------------------------------------------- Assertions are politics; backing up assertions with evidence is science ======================================================================= _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users