mirror of
https://github.com/MariaDB/server.git
synced 2025-01-31 11:01:52 +01:00
4ad51359c1
(Includes merge of arena code in 4.1 and 5.0) BitKeeper/etc/ignore: auto-union BitKeeper/etc/logging_ok: auto-union VC++Files/sql/mysqld.dsp: Auto merged client/mysql.cc: Auto merged client/mysqltest.c: Auto merged include/my_global.h: Auto merged include/my_sys.h: Auto merged include/mysql.h: Auto merged include/mysql_com.h: Auto merged innobase/row/row0sel.c: Auto merged libmysql/client_settings.h: Auto merged libmysql/libmysql.c: Auto merged libmysqld/Makefile.am: Auto merged libmysqld/examples/Makefile.am: Auto merged libmysqld/lib_sql.cc: Auto merged myisam/mi_check.c: Auto merged myisam/myisamchk.c: Auto merged myisam/sort.c: Auto merged mysql-test/r/connect.result: Auto merged mysql-test/r/ctype_recoding.result: Auto merged mysql-test/r/ctype_ucs.result: Auto merged mysql-test/r/func_in.result: Auto merged mysql-test/r/func_like.result: Auto merged mysql-test/r/gis.result: Auto merged mysql-test/r/having.result: Auto merged mysql-test/r/heap.result: Auto merged mysql-test/r/join.result: Auto merged mysql-test/r/key.result: Auto merged mysql-test/r/lowercase_table.result: Auto merged mysql-test/r/ndb_autodiscover.result: Auto merged mysql-test/r/null.result: Auto merged mysql-test/r/olap.result: Auto merged mysql-test/r/order_by.result: Auto merged mysql-test/r/ps_1general.result: Auto merged mysql-test/r/ps_2myisam.result: Auto merged mysql-test/r/ps_3innodb.result: Auto merged mysql-test/r/ps_4heap.result: Auto merged mysql-test/r/ps_5merge.result: Auto merged mysql-test/r/ps_6bdb.result: Auto merged mysql-test/r/range.result: Auto merged mysql-test/r/rename.result: Auto merged mysql-test/r/show_check.result: Auto merged mysql-test/r/subselect.result: Auto merged mysql-test/r/union.result: Auto merged mysql-test/r/variables.result: Auto merged mysql-test/t/alter_table.test: Auto merged mysql-test/t/null.test: Auto merged mysql-test/t/ps_1general.test: Auto merged mysql-test/t/rpl_charset.test: Auto merged mysql-test/t/rpl_heap.test: Auto merged mysql-test/t/rpl_relayrotate.test: Auto merged mysql-test/t/subselect.test: Auto merged mysql-test/t/variables.test: Auto merged netware/mysql_test_run.c: Auto merged scripts/make_binary_distribution.sh: Auto merged scripts/mysql_create_system_tables.sh: Auto merged scripts/mysql_fix_privilege_tables.sql: Auto merged scripts/mysql_install_db.sh: Auto merged sql/ha_berkeley.cc: Auto merged sql/ha_innodb.cc: Auto merged sql/ha_innodb.h: Auto merged sql/ha_myisam.cc: Auto merged sql/handler.cc: Auto merged sql/handler.h: Auto merged sql/item.h: Auto merged sql/item_cmpfunc.h: Auto merged sql/item_create.cc: Auto merged sql/item_create.h: Auto merged sql/item_func.cc: Auto merged sql/item_func.h: Auto merged sql/item_timefunc.cc: Auto merged sql/item_timefunc.h: Auto merged sql/lex.h: Auto merged sql/lock.cc: Auto merged sql/log_event.cc: Auto merged sql/mysql_priv.h: Auto merged sql/opt_sum.cc: Auto merged sql/protocol.cc: Auto merged sql/records.cc: Auto merged sql/repl_failsafe.cc: Auto merged sql/set_var.cc: Auto merged sql/set_var.h: Auto merged sql/slave.cc: Auto merged sql/sql_acl.cc: Auto merged sql/sql_acl.h: Auto merged sql/sql_db.cc: Auto merged sql/sql_delete.cc: Auto merged sql/sql_insert.cc: Auto merged sql/sql_list.h: Auto merged sql/sql_load.cc: Auto merged sql/sql_rename.cc: Auto merged sql/sql_select.h: Auto merged sql/sql_show.cc: Auto merged sql/sql_string.h: Auto merged sql/table.cc: Auto merged sql-common/client.c: Auto merged client/mysqlbinlog.cc: Merge with 4.1 configure.in: Merge with 4.1 include/mysqld_error.h: Add new error message (1) from 4.1 mysql-test/mysql-test-run.sh: Merge with 4.1 mysql-test/r/func_gconcat.result: Merge with 4.1 mysql-test/r/func_if.result: Merge with 4.1 mysql-test/r/grant.result: Merge with 4.1 mysql-test/r/join_outer.result: Merge with 4.1 mysql-test/r/rpl_charset.result: Merge with 4.1 (This has to be fixed before pushing) mysql-test/r/system_mysql_db.result: Merge with 4.1. Added collation to new privileges mysql-test/t/grant.test: Merge with 4.1 mysql-test/t/grant_cache.test: Merge with 4.1 mysql-test/t/show_check.test: Merge with 4.1 sql/Makefile.am: Merge with 4.1 sql/item.cc: Merge with 4.1 sql/item_cmpfunc.cc: Merge with 4.1 (arena code) sql/item_subselect.cc: Merge with 4.1 sql/item_subselect.h: Merge with 4.1 sql/item_sum.cc: Merge with 4.1 sql/item_sum.h: Merge with 4.1 sql/log.cc: Merge with 4.1 (Remove code that is not relevant for 5.0) sql/mysqld.cc: Merge with 4.1 sql/opt_range.cc: Merge with 4.1 sql/share/czech/errmsg.txt: Merge with 4.1 sql/share/danish/errmsg.txt: Merge with 4.1 sql/share/dutch/errmsg.txt: Merge with 4.1 sql/share/english/errmsg.txt: Merge with 4.1 sql/share/estonian/errmsg.txt: Merge with 4.1 sql/share/french/errmsg.txt: Merge with 4.1 sql/share/german/errmsg.txt: Merge with 4.1 sql/share/greek/errmsg.txt: Merge with 4.1 sql/share/hungarian/errmsg.txt: Merge with 4.1 sql/share/italian/errmsg.txt: Merge with 4.1 sql/share/japanese/errmsg.txt: Merge with 4.1 sql/share/korean/errmsg.txt: Merge with 4.1 sql/share/norwegian-ny/errmsg.txt: Merge with 4.1 sql/share/norwegian/errmsg.txt: Merge with 4.1 sql/share/polish/errmsg.txt: Merge with 4.1 sql/share/portuguese/errmsg.txt: Merge with 4.1 sql/share/romanian/errmsg.txt: Merge with 4.1 sql/share/russian/errmsg.txt: Merge with 4.1 sql/share/serbian/errmsg.txt: Merge with 4.1 sql/share/slovak/errmsg.txt: Merge with 4.1 sql/share/spanish/errmsg.txt: Merge with 4.1 sql/share/swedish/errmsg.txt: Merge with 4.1 sql/share/ukrainian/errmsg.txt: Merge with 4.1 sql/sql_base.cc: Merge with 4.1 sql/sql_class.cc: Merge with 4.1 Use arena code from 4.1 sql/sql_class.h: Merge with 4.1 Use arena code from 4.1 sql/sql_derived.cc: Merge with 4.1 sql/sql_lex.cc: Merge with 4.1 sql/sql_lex.h: Merge with 4.1 sql/sql_parse.cc: Merge with 4.1 sql/sql_prepare.cc: Merge with 4.1 sql/sql_select.cc: Merge with 4.1 sql/sql_table.cc: Merge with 4.1 sql/sql_union.cc: Merge with 4.1 sql/sql_yacc.yy: Merge with 4.1 sql/tztime.cc: Merge with 4.1 tests/client_test.c: Merge with 4.1
130 lines
4 KiB
Text
130 lines
4 KiB
Text
drop table if exists t1,t2;
|
|
create table t1 (a int);
|
|
select count(a) as b from t1 where a=0 having b > 0;
|
|
b
|
|
insert into t1 values (null);
|
|
select count(a) as b from t1 where a=0 having b > 0;
|
|
b
|
|
select count(a) as b from t1 where a=0 having b >=0;
|
|
b
|
|
0
|
|
explain extended select count(a) as b from t1 where a=0 having b >=0;
|
|
id select_type table type possible_keys key key_len ref rows Extra
|
|
1 SIMPLE NULL NULL NULL NULL NULL NULL NULL Impossible WHERE noticed after reading const tables
|
|
Warnings:
|
|
Note 1003 select count(`test`.`t1`.`a`) AS `b` from `test`.`t1` where (`test`.`t1`.`a` = 0) having (count(`test`.`t1`.`a`) >= 0)
|
|
drop table t1;
|
|
CREATE TABLE t1 (
|
|
raw_id int(10) NOT NULL default '0',
|
|
chr_start int(10) NOT NULL default '0',
|
|
chr_end int(10) NOT NULL default '0',
|
|
raw_start int(10) NOT NULL default '0',
|
|
raw_end int(10) NOT NULL default '0',
|
|
raw_ori int(2) NOT NULL default '0'
|
|
);
|
|
INSERT INTO t1 VALUES (469713,1,164123,1,164123,1),(317330,164124,317193,101,153170,1),(469434,317194,375620,101,58527,1),(591816,375621,484273,1,108653,1),(591807,484274,534671,91,50488,1),(318885,534672,649362,101,114791,1),(318728,649363,775520,102,126259,1),(336829,775521,813997,101,38577,1),(317740,813998,953227,101,139330,1),(1,813998,953227,101,139330,1);
|
|
CREATE TABLE t2 (
|
|
id int(10) unsigned NOT NULL default '0',
|
|
contig_id int(10) unsigned NOT NULL default '0',
|
|
seq_start int(10) NOT NULL default '0',
|
|
seq_end int(10) NOT NULL default '0',
|
|
strand tinyint(2) NOT NULL default '0',
|
|
KEY id (id)
|
|
);
|
|
INSERT INTO t2 VALUES (133195,469713,61327,61384,1),(133196,469713,64113,64387,1),(133197,1,1,1,0),(133197,1,1,1,-2);
|
|
SELECT e.id,
|
|
MIN( IF(sgp.raw_ori=1,
|
|
(e.seq_start+sgp.chr_start-sgp.raw_start),
|
|
(sgp.chr_start+sgp.raw_end-e.seq_end))) as start,
|
|
MAX( IF(sgp.raw_ori=1,
|
|
(e.seq_end+sgp.chr_start-sgp.raw_start),
|
|
(sgp.chr_start+sgp.raw_end-e.seq_start))) as end,
|
|
AVG(IF (sgp.raw_ori=1,e.strand,(-e.strand))) as chr_strand
|
|
FROM t1 sgp,
|
|
t2 e
|
|
WHERE sgp.raw_id=e.contig_id
|
|
GROUP BY e.id
|
|
HAVING chr_strand= -1 and end >= 0
|
|
AND start <= 999660;
|
|
id start end chr_strand
|
|
133197 813898 813898 -1.0000
|
|
drop table t1,t2;
|
|
CREATE TABLE t1 (Fld1 int(11) default NULL,Fld2 int(11) default NULL);
|
|
INSERT INTO t1 VALUES (1,10),(1,20),(2,NULL),(2,NULL),(3,50);
|
|
select Fld1, max(Fld2) as q from t1 group by Fld1 having q is not null;
|
|
Fld1 q
|
|
1 20
|
|
3 50
|
|
select Fld1, max(Fld2) from t1 group by Fld1 having max(Fld2) is not null;
|
|
Fld1 max(Fld2)
|
|
1 20
|
|
3 50
|
|
select Fld1, max(Fld2) from t1 group by Fld1 having avg(Fld2) is not null;
|
|
Fld1 max(Fld2)
|
|
1 20
|
|
3 50
|
|
select Fld1, max(Fld2) from t1 group by Fld1 having std(Fld2) is not null;
|
|
Fld1 max(Fld2)
|
|
1 20
|
|
3 50
|
|
select Fld1, max(Fld2) from t1 group by Fld1 having variance(Fld2) is not null;
|
|
Fld1 max(Fld2)
|
|
1 20
|
|
3 50
|
|
drop table t1;
|
|
create table t1 (id int not null, qty int not null);
|
|
insert into t1 values (1,2),(1,3),(2,4),(2,5);
|
|
select id, sum(qty) as sqty from t1 group by id having sqty>2;
|
|
id sqty
|
|
1 5
|
|
2 9
|
|
select sum(qty) as sqty from t1 group by id having count(id) > 0;
|
|
sqty
|
|
5
|
|
9
|
|
select sum(qty) as sqty from t1 group by id having count(distinct id) > 0;
|
|
sqty
|
|
5
|
|
9
|
|
drop table t1;
|
|
CREATE TABLE t1 (
|
|
`id` bigint(20) NOT NULL default '0',
|
|
`description` text
|
|
) ENGINE=MyISAM;
|
|
CREATE TABLE t2 (
|
|
`id` bigint(20) NOT NULL default '0',
|
|
`description` varchar(20)
|
|
) ENGINE=MyISAM;
|
|
INSERT INTO t1 VALUES (1, 'test');
|
|
INSERT INTO t2 VALUES (1, 'test');
|
|
CREATE TABLE t3 (
|
|
`id` bigint(20) NOT NULL default '0',
|
|
`order_id` bigint(20) NOT NULL default '0'
|
|
) ENGINE=MyISAM;
|
|
select
|
|
a.id, a.description,
|
|
count(b.id) as c
|
|
from t1 a left join t3 b on a.id=b.order_id
|
|
group by a.id, a.description
|
|
having (a.description is not null) and (c=0);
|
|
id description c
|
|
1 test 0
|
|
select
|
|
a.*,
|
|
count(b.id) as c
|
|
from t2 a left join t3 b on a.id=b.order_id
|
|
group by a.id, a.description
|
|
having (a.description is not null) and (c=0);
|
|
id description c
|
|
1 test 0
|
|
INSERT INTO t1 VALUES (2, 'test2');
|
|
select
|
|
a.id, a.description,
|
|
count(b.id) as c
|
|
from t1 a left join t3 b on a.id=b.order_id
|
|
group by a.id, a.description
|
|
having (a.description is not null) and (c=0);
|
|
id description c
|
|
1 test 0
|
|
2 test2 0
|
|
drop table t1,t2,t3;
|