Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.
|Comment:||Minor changes to lang.in.|
|Timelines:||family | ancestors | descendants | both | trunk|
|Files:||files | file ages | folders|
|User & Date:||dan 2010-09-10 19:11:05|
|17:46||Change to requirement marks in lang.in. check-in: b5882b3f8f user: dan tags: trunk|
|19:11||Minor changes to lang.in. check-in: 8efac9af2b user: dan tags: trunk|
|19:08||Bug in "fossil rename" prevented the removal of fileformat.in from working. This checkin deletes it, which we know works. check-in: 95550b75ee user: drh tags: trunk|
Changes to pages/lang.in.
2779 2779 non-aggregate expression. ^Or, if the dataset contains zero rows, then 2780 2780 each non-aggregate expression is evaluated against a row consisting 2781 2781 entirely of NULL values. 2782 2782 2783 2783 <p>^The single row of result-set data created by evaluating the aggregate 2784 2784 and non-aggregate expressions in the result-set forms the result of an 2785 2785 aggregate query without a GROUP BY clause. ^An aggregate query without a 2786 - GROUP BY clause always returns exactly one row of data. 2786 + GROUP BY clause always returns exactly one row of data, even if there are 2787 + zero rows of input data. 2787 2788 2788 - <li><p>^If the SELECT statement is <b>an aggregate query with a GROUP 2789 + <li><p>^(If the SELECT statement is <b>an aggregate query with a GROUP 2789 2790 BY</b> clause, then each of the expressions specified as part of the 2790 - GROUP BY clause is evaluated for each row of the filtered input dataset. 2791 - ^Each row is grouped with all other rows for which all GROUP BY 2792 - expressions evaluate to the same values. ^For the purposes of grouping 2793 - rows, NULL values are considered equal. ^The usual rules for selecting 2794 - a collation sequence with which to compare text values apply when evaluating 2791 + GROUP BY clause is evaluated for each row of the dataset. Each row 2792 + is then assigned to a "group" based on the results; rows for which 2793 + the results of evaluating the GROUP BY expressions are the same are 2794 + assigned to the same group.)^ ^For the purposes of grouping rows, NULL 2795 + values are considered equal. ^The usual rules for [collation|selecting a 2796 + collation sequence] with which to compare text values apply when evaluating 2795 2797 expressions in a GROUP BY clause. ^The expressions in the GROUP BY clause 2796 2798 do <em>not</em> have to be expressions that appear in the result. ^The 2797 2799 expressions in a GROUP BY clause may not be aggregate expressions. 2798 2800 2799 - <p>^If a HAVING clause is specified, it is evaluated once for each group 2800 - of rows and cast to an integer value. ^If the HAVING clause is an aggregate 2801 - expression, it is evaluated across all rows in the group. ^If a HAVING 2802 - clause is a non-aggregate expression, it is evaluated with respect to an 2803 - arbitrarily selected row from the group. ^If the result of evaluating the 2804 - HAVING clause is NULL or zero (integer value 0), the group is discarded. 2801 + <p>^(If a HAVING clause is specified, it is evaluated once for each group 2802 + of rows and cast to an integer value. If the result of evaluating the 2803 + HAVING clause is NULL or zero (integer value 0), the group is discarded.)^ 2804 + ^If the HAVING clause is an aggregate expression, it is evaluated across 2805 + all rows in the group. ^If a HAVING clause is a non-aggregate expression, 2806 + it is evaluated with respect to an arbitrarily selected row from the group. 2805 2807 ^The HAVING expression may refer to values, even aggregate functions, that 2806 2808 are not in the result.</p> 2807 2809 2808 2810 <p>^Each expression in the result-set is then evaluated once for each 2809 2811 group of rows. ^If the expression is an aggregate expression, it is 2810 2812 evaluated across all rows in the group. ^Otherwise, it is evaluated against 2811 2813 a single arbitrarily chosen row from within the group. ^If there is more