mirror of
https://github.com/MariaDB/server.git
synced 2025-08-01 03:47:19 +03:00
Merge sanja.is.com.ua:/home/bell/mysql/bk/mysql-4.1
into sanja.is.com.ua:/home/bell/mysql/bk/work-4.1 sql/sql_select.cc: Auto merged
This commit is contained in:
@ -330,3 +330,12 @@ SELECT MIN(price) min, MAX(price) max, AVG(price) avg FROM (SELECT SUBSTRING( MA
|
|||||||
min max avg
|
min max avg
|
||||||
10.00 10.00 10
|
10.00 10.00 10
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
create table t1 (a integer, b integer);
|
||||||
|
insert into t1 values (1,4), (2,2),(2,2), (4,1),(4,1),(4,1),(4,1);
|
||||||
|
select distinct sum(b) from t1 group by a;
|
||||||
|
sum(b)
|
||||||
|
4
|
||||||
|
select distinct sum(b) from (select a,b from t1) y group by a;
|
||||||
|
sum(b)
|
||||||
|
4
|
||||||
|
drop table t1;
|
||||||
|
@ -214,3 +214,13 @@ CREATE TABLE `t1` ( `itemid` int(11) NOT NULL default '0', `grpid` varchar(15) N
|
|||||||
insert into t1 values (128, 'rozn', 2, now(), 10),(128, 'rozn', 1, now(), 10);
|
insert into t1 values (128, 'rozn', 2, now(), 10),(128, 'rozn', 1, now(), 10);
|
||||||
SELECT MIN(price) min, MAX(price) max, AVG(price) avg FROM (SELECT SUBSTRING( MAX(concat(date_,";",price)), 12) price FROM t1 WHERE itemid=128 AND grpid='rozn' GROUP BY itemid, grpid, vendor) lastprices;
|
SELECT MIN(price) min, MAX(price) max, AVG(price) avg FROM (SELECT SUBSTRING( MAX(concat(date_,";",price)), 12) price FROM t1 WHERE itemid=128 AND grpid='rozn' GROUP BY itemid, grpid, vendor) lastprices;
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
#
|
||||||
|
# DISTINCT over grouped select on subquery in the FROM clause
|
||||||
|
#
|
||||||
|
create table t1 (a integer, b integer);
|
||||||
|
insert into t1 values (1,4), (2,2),(2,2), (4,1),(4,1),(4,1),(4,1);
|
||||||
|
select distinct sum(b) from t1 group by a;
|
||||||
|
select distinct sum(b) from (select a,b from t1) y group by a;
|
||||||
|
drop table t1;
|
||||||
|
|
||||||
|
@ -164,7 +164,10 @@ void lex_start(THD *thd, uchar *buf,uint length)
|
|||||||
|
|
||||||
void lex_end(LEX *lex)
|
void lex_end(LEX *lex)
|
||||||
{
|
{
|
||||||
lex->select_lex.expr_list.delete_elements(); // If error when parsing sql-varargs
|
for (SELECT_LEX *sl= lex->all_selects_list;
|
||||||
|
sl;
|
||||||
|
sl= sl->next_select_in_list())
|
||||||
|
sl->expr_list.delete_elements(); // If error when parsing sql-varargs
|
||||||
x_free(lex->yacc_yyss);
|
x_free(lex->yacc_yyss);
|
||||||
x_free(lex->yacc_yyvs);
|
x_free(lex->yacc_yyvs);
|
||||||
}
|
}
|
||||||
|
@ -1304,7 +1304,7 @@ JOIN::exec()
|
|||||||
curr_join->select_distinct=0; /* Each row is unique */
|
curr_join->select_distinct=0; /* Each row is unique */
|
||||||
|
|
||||||
curr_join->join_free(0); /* Free quick selects */
|
curr_join->join_free(0); /* Free quick selects */
|
||||||
if (select_distinct && ! group_list)
|
if (curr_join->select_distinct && ! curr_join->group_list)
|
||||||
{
|
{
|
||||||
thd->proc_info="Removing duplicates";
|
thd->proc_info="Removing duplicates";
|
||||||
if (curr_join->tmp_having)
|
if (curr_join->tmp_having)
|
||||||
|
Reference in New Issue
Block a user