关于sqlite count(*)的走索引问题

现在有一个安卓项目由于数据量大,而且有不定长数据(图片),导致查询数据库很慢,因此建立索引以改善。而现在问题是相同的sql语句,在windows下测试,看执行计划是走索引的,而在Android系统下不走索引,请教大神是什么回事,怎么解决?

表结构:UID integer primary key autoincrement,
UserCode TEXT not null,
Delete integer not null,
Photo blob .
索引:create index usercode_idx on tableName (UserCode asc, Delete );
问题SQL:select count(*) from tableName where Usercode like ''%%' and Delete = 0

1个回答

用explain查看一下索引是否符合条件了

u013565368
宇o风 就是使用explain看的,windows下看用索引了,android下没用。
3 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
一则count(*) count(1) 为啥没有走索引的遭遇
一个超级简单的语句 select count(1) from lixora ; 开发反馈很慢,走了全表扫描,并且反馈说该表上有3个单列索引 一般就2种原因:  1.统计信息不对 2.索引列为 nullable  当时先让开发的兄弟使用 index hint 强制走了下索引,速度飞快, 然后 再select count(lixora) from lixora ,发现也是走索引;
关于sqlserver in 走不走索引
先看图 看懂了吗,当数据量较少时,没有走索引。当插入10万数据之后,走了索引。大多数说 in 不走索引,可能就在于测试的时候插入的数据量不多导致的吧~
Innodb主键COUNT和第二索引COUNT问题
[code=SQL]rndrop table if exists test;rncreate table test rn(rn id int not null,rn int_k int not null,rn data1 varchar(255) not null,rn data2 varchar(255) not null,rn primary key (id),rn key (int_k)rn) ENGINE=innodb;rndrop procedure if exists populate;rndelimiter //rncreate procedure populate()rnbeginrn declare i int;rnrn set i = 0;rn start transaction;rn while i < 3000000 dorn insert into test (id, int_k, data1, data2) rn values (i, i, repeat("-", 250), repeat("-", 250));rn set i = i + 1;rn if i % 1000 = 0 thenrn start transaction;rn end if;rn end while;rn commit;rnend;rn//rndelimiter ;rncall populate();rndrop procedure populate;rnexplain select count(*) from test use index (int_k);rnexplain select count(*) from test;rnselect count(*) from test use index (int_k);rnselect count(*) from test;rnrnrn[/code]rnrnrn测试发现主键COUNT要比走第二索引COUNT花费很多时间,优化器为什么不会直接选择走第二索引?难道是Mysql的优化器还不成熟?
请教【关于是否走索引的问题】
select AAA from tmp_t rnwhere BBB='b' and CCC='c' AND DDD='d' rn-- and EEE='e'rnrn在tmp_t表AAA字段上建立聚簇索引index_1,在BBB、CCC、DDD字段建立联合索引index_2。rnrn如果从where中去掉EEE='e'这个条件,SET SHOWPLAN_ALL on之后rn会看到走索引index_2(这个问题不大),但加上EEE='e'条件后则走index_1了啊。rn[我想让它走index_2,而且不想将EEE字段也作为联合索引中的一列]rnrn求教:这是为什么啊?rnrn
关于 SQL in, or 到底走不走索引的问题ss
关于这个问题,一般我们都是在网上搜索答案但是搜索出来的几乎都说,in、or s 使用后不走索引,最开始我也是一直这样认为的,但是最近自己在测试时就找到它到底走不走索引了。自己测试时使用 mysql 5.6,在测试中 sql 语句 最前面 都加有explain 关键字,explain SELECT * FROM t_supplier_hr WHERE id &gt; 9865 or su...
like走不走索引
[code=sql]rncreate index in_tianya_user on t_tianya_user(eml)rnselect * rnfrom t_tianya_user rnwhere eml like 'dcl%'rn[/code]rnrnrn经SQLServer 2005验证,like是走索引的,为什么论坛都说不走索引?
insert 数据走索引问题
[size=18px]实际工作中遇到这样一种情况,服务器A上的数据库中有两张表tab_a和tab_b,服务器B上的数据库有一张表tab_c,我已在服务器A上建好dblink并对tab_c建了同义词(名为tab_c),rninsert into tab_c select * from tab_a ,tab_b where tab_a.id=tab_b.id and tab_a.task_no='23';rn这样插入4000数据却需要18分钟,相应字段都有索引,哪位大神帮忙看看,是什么情况啊?和先查询再远程插入有关吗?tab_a单表大概九千万数据,tab_b表20万数据。谢谢了~[/size]
sql2008 数据查询 走索引问题
哪位大哥帮理忙rnrn表sinout 有6百万条记录,sinmbd,sinbox建了索引rndeclare @mbd_id decimalrndeclare @boxID decimalrnset @mbd_id=161833rnset @boxID=263rn查询1:select sum(sinqty) from SINOUT where sinmbd=@mbd_id and sinbox=@boxIDrnrn这样子查询数据用了7秒,这样子它没走索引。rn rn查询2:select SUM(sinqty) from SINOUT where sinmbd=161833 and sinbox=263rnrn这样子写查询不到1秒,这里走了索引rnrn为什么查询1不走索引?
oracle 不能走索引问题
SQL 语句:rnSELECT t.CSTM_NO,t.accrn CM.CUSTMER_MANAGER_IDrn FROM MPM_PCUST_MNG_INFO CM,rn MPM_PACC_INFO trn WHERE CM.CUSTMER_MANAGER_ID = '330118065'rn AND CM.CONFORM_INDPARTY_ID = t.CSTM_NO;rn索引 :rnMPM_PCUST_MNG_INFO表:rnalter table MPM_PCUST_MNG_INFO add constraint PCUST_MNG_INFO primary key (CONFORM_INDPARTY_ID, CUSTMER_MANAGER_ID)rnMPM_PACC_INFO 表:rncreate index PACC_CSTM_NO_IDX on MPM_PACC_INFO (CSTM_NO, ACC_TYPE, OPEN_INST) 。rn得到的执行计划如下:rnSELECT STATEMENT, GOAL = ALL_ROWS 411842 9 468rn HASH JOIN 411842 9 468rn INDEX FULL SCAN MPM PCUST_MNG_INFO 1 4 68rn PARTITION RANGE ALL 411243 66416252 2324568820rn TABLE ACCESS FULL MPM MPM_PACC_INFO 411243 66416252 2324568820rnrnMPM_PCUST_MNG_INFO表数据量100多条,关联CM.CUSTMER_MANAGER_ID = '330118065'条件后只有2条记录,MPM_PACC_INFO表有6600多万记录,而且经过分区的。rn还请CSDN各位大侠解答,为什么MPM_PACC_INFO表没有走PACC_CSTM_NO_IDX这个索引,在另外的测试环境上,MPM_PACC_INFO记录只有200多万的时候是能够走索引的。rn
MySQL in不走索引
优化前SELECT*  FROM erp_helei mg WHERE mg.num = 602   AND mg.pid   IN   (10002559,10002561,10002562,10002563,10002564,10002598,10002599,10002600,10002601,10002602,10002603,10002604,10002648,10002649,1000...
mysql强制走索引
force index 函数表示强制走括号中的索引key select order_key ,createtime FROM aaa force index(createtime) group by order_key 在生产环境验证的时候。 用 explain select order_key ,createtime FROM aaa force index(createtime) group ...
何时走索引
问一个老生常谈的问题,oracle何时走索引,今天遇到一个奇怪的问题,查询一个表最近七天内的数据,数据量2w条左右,全表的数据量达到50多w,根据分析的很,数据量远远没有达到1/3,如果建了索引,应该会走索引才对,可这就奇怪了,它偏偏不走索引,但是加了order by之后,它就能走索引了,更奇怪的事是加了order by再加一个没有索引的条件,它又不会走索引了,感觉直接上sql说得清楚些,如下:rn全部的数据量:[img=https://img-bbs.csdn.net/upload/201407/07/1404723148_582296.jpg][/img]rn符合条件的数据量:[img=https://img-bbs.csdn.net/upload/201407/07/1404723242_717803.jpg][/img]rn查询最近七天的数据不会自动走索引(create_time上建了索引)(执行计划):rn[img=https://img-bbs.csdn.net/upload/201407/07/1404723352_279851.jpg][/img]rn加了orderby之后能走索引:[img=https://img-bbs.csdn.net/upload/201407/07/1404723437_494913.jpg][/img]rn再加一个没有索引的条件,又变成了不会走索引:rn[img=https://img-bbs.csdn.net/upload/201407/07/1404723509_627844.jpg][/img]rn我知道可以使用hint让它强制走索引,但是我想了解一下oracle优化器是怎么思考,有木有大虾能解释一下不,小弟不胜感激rnrn
为什么没有走索引???
[code=sql]SELECT T.*rn FROM rn tbl_vao_chnltrans t rn WHERE rn trans_pay IN ('0500','0502','04100','04S230','03001','041Y')rn ORrn trans_prod IN ('05S00','05S3102','100','1Y0','023001','04231Y2')[/code]rnrn为什么我在表上的 trans_pay 和 trans_prod 这两个字段上建了索引,都没有走索引?rn执行计划就是全表扫描。rnrn这张表有点大,为什么会没有走索引?请问怎么写才会走到索引(需要select 非索引字段)?
怎么不走索引
有两个表rnuser_notice(nid number primary key,user_id number,notice_info varchar2(10));rnsubscription(subscriber number,subscribed number,primary key(subscriber,subscribed ))rnrn我在user_notice.user_id 上创建了一个索引rn现在我要查 rnselect * from user_notice s where exists (select null from subscription c where c.subscriber=1715 and s.user_id = c.subscribed )rn为什么他对user_notice要全表扫描,而不走索引?rnselect * from user_notice s where exists (select null from subscription c where s.user_id = c.subscribed and c.subscriber=1715) 也是一样
强制走索引
在一个时间字段上加了索引,索引名为idx_detail_create_time,但是发现并没有走这个索引,这时可以强制走此索引: FORCE INDEX ( idx_detail_create_time )
mysql 执行计划走索引
mysql> show index from AssignClientManager; +---------------------+------------+----------+--------------+-------------+-----------+-------------+----------+--------+------+------------+---------+----
mysql 索引 大于等于 走不走索引 最左前缀
你可以认为联合索引是闯关游戏的设计例如你这个联合索引是state/city/zipCode那么state就是第一关 city是第二关, zipCode就是第三关你必须匹配了第一关,才能匹配第二关,匹配了第一关和第二关,才能匹配第三关你不能直接到第二关的索引的格式就是第一层是state,第二层才是city上面举例介绍来源 https://zhidao.baidu.com/question/1863
ORACLE为什么不走主键索引缺走普通的索引?
表DINV_HDR,子表大概5 6个,大概800W数据,rn主键SHOP_CODE,COUNTER,INV_NUM, 类型CHAR(10),CHAR(5),CHAR(30)rn增加索引:SHOP_CODE,COUNTER,INV_RUNNO, INV_RUNNO字段类型NUMBER(12)rnrn当我查询 SELECT * FROM DINV_HDR WHERE SHOP_CODE='001' AND COUNTER='001' AND INV_NUM='10401-001' 时,走的是增加的索引,缺不是主键索引rnrn1.重新收集统计信息,rn2.重新编译所有主键,索引,rn3.导出DMP之后换一台机重新导入走主键索引,rn4.如果WHERE条件增加空格走主键索引 rn例如SHOP_CODE='001 ' AND COUNTER='001 ' AND INV_NUM='10401-001 ' ;rnrn请帮忙分析下什么原因[img=https://img-bbs.csdn.net/upload/201601/06/1452016516_355311.png][/img]
sql中用in查询走不走索引?
看网上很多资料说in不走索引,是全表扫描,但是自己试了下,像in(1,2,3),如果括号中的列建了索引,查询速度还是非常快的,去了索引就变慢了。rnrn当然,我平时用的是MySQL,不过我想oracle也一样吧。
子查询到底走不走索引?
CREATE TABLE zichaxuntest ( a int(11) NOT NULL, b varchar(255) DEFAULT NULL, c varchar(255) DEFAULT NULL, d varchar(255) DEFAULT NULL, PRIMARY KEY (a), KEY bIndex (b) USING BTREE ) ENGINE=InnoDB DEFAU...
语句不走索引(复合字段索引)
explain rnselect * from Log where id= 12418040 and ActiveTime<'2009-09-09 14:27:09' rn我已经建立索引 (id, ActiveTime )rnrn+----+-------------+-------+------+---------------+------+---------+------+------+-----------------------------------------------------+rn| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |rn+----+-------------+-------+------+---------------+------+---------+------+------+-----------------------------------------------------+rn| 1 | SIMPLE | NULL | NULL | NULL | NULL | NULL | NULL | NULL | Impossible WHERE noticed after reading const tables |rn+----+-------------+-------+------+---------------+------+---------+------+------+-----------------------------------------------------+rn1 row in setrnrn很奇怪 ,  没有道理啦 
建了索引却不走索引案例分析
这个博客和我生产碰到的很像:https://my.oschina.net/loujinhe/blog/1528233CREATE TABLE t_order ( id bigint(20) unsigned NOT NULL AUTO_INCREMENT, order_code char(12) NOT NULL, order_amount decimal(12,2) NOT NU
sqlite索引/主键
唯一索引 sqlite&amp;gt; create table t1 ( ...&amp;gt; id int primary key, ...&amp;gt; col varchar(20) ...&amp;gt; ); sqlite&amp;gt; create unique index uk_t1 on t1 (col); 主键索引 creat...
sqlite创建索引与视图
如果一个表的所有字段都有可能成为搜索的条件,那么索引该怎么创建呢,建立什么类型的索引,聚焦索引还是非聚焦索引或者非聚焦联合索引rn多个表联合查询,创建视图是否会增加查询的速度
sqlite建立索引,全局搜索
RTrnrnSQLite中如何添加字段索引rn另听说sqlite中可以全局搜索,就是不用指定特定字段的全数据库搜索,请问应该如何操作啊
sqlite 索引会不会自动更新
在sqlite数据库中对表的某个字段创建了索引,之后又插入了几条新的记录,那么这个索引会自动更新吗,如果不能,怎么达到更新索引的目的?
关于count排序的问题
我有一个这样的语句rnrnselect userid,username,(select count(Info_id) from information where userid=studyuser.userid) as coun from studyuser rnrn如果我想按 coun排序的话,在sql里后面加下 order by coun 就行了,可是在access里这样的语句执行不了,为什么?也就是说rnrnselect userid,username,(select count(Info_id) from information where userid=studyuser.userid) as coun from studyuser order by coun 这样就排序不了!!谁能告诉我答案啊!
一个关于COUNT的问题
[code=SQL]rnSELECT TOP(30) * FROMrn(rn SELECT rn id,rn name,rn type,rn CONVERT(varchar(19), jointime, 120) as date,rn ROW_NUMBER() OVER(ORDER BY jointime DESC) AS RowNorn FROMrn (rn SELECTrn id,rn name,rn type,rn CONVERT(varchar(19), jointime, 120) as disposal_timern FROMrn W_AlarmHistroyrn GROUP BYrn id,rn name,rn type,rn CONVERT(varchar(19), jointime, 120)rn ) AS Brn) AS ArnWHERE RowNo > 0;rn[/code]rnrn因为要分页功能,一般情况下需要再次执行一条SQL COUNT()来得到数据数组,有什么办法在执行上面的SQL时,同时得到数据的总数呢?
一个关于count的问题
有A表内容如下:rnq 1rnq 2rnq 3 rnw 1rnw 2rnw 3rn如何通过一条SQL语句得到如下结果:rnq 3rnw 3rnrn下面这个q3、w3是对A表进行count统计后的数
关于count 问题
[code=SQL]rnroot:optimizetest>EXPLAIN select COUNT(name1) from demo1\Grn*************************** 1. row ***************************rn id: 1rn select_type: SIMPLErn table: demo1rn type: indexrnpossible_keys: NULLrn key: PRIMARYrn key_len: 4rn ref: NULLrn rows: 2983rn Extra: Using indexrn1 row in set (0.00 sec)rnrnroot:optimizetest>select COUNT(name1) from demo1;rn+--------------+rn| COUNT(name1) |rn+--------------+rn| 3147 |rn+--------------+rn1 row in set (0.00 sec)rnrnroot:optimizetest>[/code]rnrn看第一个explain select 里面只扫描了2983行数据.rn但是我的count(name1) 里面为什么可以查到3147条语句呢?rn请问这多的100多条记录是怎么来的?
关于count 的问题
[code=SQL]rnSET ANSI_NULLS ONrnGOrnSET QUOTED_IDENTIFIER ONrnGOrn-- =============================================rn-- Author: rn-- Create date: <2010-318>rn-- Description: rn-- =============================================rnalter PROCEDURE getPersonSearchrn(rn @pagesize int,rn @pageindex int, --从0开始rn @positiontitle int,rn @specialty nvarchar(20),rn @edustate nvarchar(20),rn @language nvarchar(20),rn @languageleve nvarchar(20),rn @work_year int,rn @talent_type nvarchar(20),rn @sex nvarchar(10),rn @minage int,rn @maxage int,rn @workplacestr nvarchar(1000),rn @locnow nvarchar(20),rn @locreg nvarchar(20),rn @positionstr nvarchar(1000),rn @applytype nvarchar(50),rn @up int, --1表示学历包括以上,0不包括rn @state int,--简历状态rn @count int outputrn)rnASrnBEGINrn SET NOCOUNT ON;rn declare @sql nvarchar(4000)rn declare @startIndex intrn set @startIndex = @pageindex * @pagesizern rn set @sql='select top '+CONVERT(nvarchar(5), @pagesize,0)+' * from ( select PersonalInfo.Station1,PersonalInfo.Edu,PersonalInfo.UserID,PersonalInfo.Work_Year,PersonalInfo.Update_Time,PublicInfo.Birthday,PublicInfo.Sex as truesex ,ROW_NUMBER() over(order by personalinfo.update_time desc) as row from PersonalInfo inner join PublicInfo on PersonalInfo.UserID = PublicInfo.UserID where 1=1 'rnrn if @positiontitle<>0 rn beginrn if (@positiontitle % 1000)= 0rn beginrn set @sql = @sql + ' and (PositionTitle1 >= '+CONVERT(nvarchar(10), @positiontitle,0)+' and PositionTitle1<'+CONVERT(nvarchar(10), @positiontitle+1000,0)+') or (PositionTitle2 >= '+CONVERT(nvarchar(10), @positiontitle,0)+' and PositionTitle2<'+CONVERT(nvarchar(10), @positiontitle+1000,0)+')'rnrn endrn elsern beginrn set @sql = @sql + ' and ((PositionTitle1-1)='+CONVERT(nvarchar(10), @positiontitle,0)+' or (PositionTitle2-1)='+CONVERT(nvarchar(10), @positiontitle,0)+')'rn endrn endrnrn if @specialty<>''rn beginrn set @sql = @sql + ' and (Specialty1 = '''+@specialty+''' or Specialty2='''+@specialty+''')'rn endrn rn if @up>0 --包括以上rn beginrn set @sql = @sql + ' and (edustate & ' +CONVERT(nvarchar(10),@edustate,0)+')='+CONVERT(nvarchar(10),@edustate,0)+''rn endrn else rn beginrn set @sql = @sql +' and (edustate-1)='+CONVERT(nvarchar(10),@edustate,0)+''rn endrn rn if @language<>''rn beginrn if @languageleve<>''rn beginrn set @sql = @sql +' and ((Language1='''+@language+''' and Level1 = '''+@languageleve+''')'rn set @sql = @sql+' or (Language2='''+@language+''' and Level2 = '''+@languageleve+'''))'rn endrn elsern beginrn set @sql = @sql +' and ((Language1='''+@language+''')'rn set @sql=@sql+' or (Language2='''+@language+'''))'rn endrn endrn rn if @work_year<>0rn beginrn set @sql = @sql + ' and Work_Year>='+CONVERT(nvarchar(5), @work_year,0)+''rn endrn rn if @talent_type<>''rn beginrn set @sql= @sql+' and Talent_Type='''+@talent_type+''''rn endrn rn if @sex<>'不限'rn beginrn set @sql = @sql +' and PublicInfo.Sex='''+@sex+''''rn endrn rn set @sql = @sql +' and ( YEAR(GETDATE())- PublicInfo.Birthday between '+CONVERT(nvarchar(3),@minage,0)+' and '+CONVERT(nvarchar(3),@maxage,0)+')'rn rn if @locnow <> '不限'rn beginrn set @sql = @sql + ' and Loc_Now = '''+@locnow+''''rn endrn rn if @locreg <> '不限'rn beginrn set @sql = @sql + ' and Loc_Reg = '''+@locreg+''''rn endrn rn if @applytype<>''rn beginrn set @sql = @sql +' and Apply_Type='''+@applytype+''''rn endrn rn if @positionstr<>''rn beginrn set @sql = @sql + @positionstrrn endrn rn if @workplacestr<>''rn beginrn set @sql = @sql+@workplacestrrn endrn rn set @sql = @sql+') as dc where row >= '+CONVERT(nvarchar(5), @startIndex,0)+''rn rn exec sp_executesql @sqlrn rnENDrnGOrn[/code]rnselect top 10 * from ( select PersonalInfo.Station1,PersonalInfo.Edu,PersonalInfo.UserID,PersonalInfo.Work_Year,PersonalInfo.Update_Time,PublicInfo.Birthday,PublicInfo.Sex as truesex ,ROW_NUMBER() over(order by personalinfo.update_time desc) as row from PersonalInfo inner join PublicInfo on PersonalInfo.UserID = PublicInfo.UserID where 1=1 and (PositionTitle1 >= 1000 and PositionTitle1<2000) or (PositionTitle2 >= 1000 and PositionTitle2<2000) and (Specialty1 = '电子类' or Specialty2='电子类') and (edustate-1)=15 and ((Language1='英语' and Level1 = '四级') or (Language2='英语' and Level2 = '四级')) and Work_Year>=1 and Talent_Type='普通求职' and PublicInfo.Sex='先生' and ( YEAR(GETDATE())- PublicInfo.Birthday between 0 and 100) and Loc_Now = '广东省' and Loc_Reg = '广东省' and Apply_Type='全职兼职均可' and( Position1 like '%程序%' or Position2 like '%程序%' or Position1 like '%tv%' or Position2 like '%tv%') and( Work_Place1 in('广州市','深圳','珠海','中山','汕尾') or Work_Place2 in('广州市','深圳','珠海','中山','汕尾') or Work_Place3 in('广州市','深圳','珠海','中山','汕尾') or Work_Place4 in('广州市','深圳','珠海','中山','汕尾') or Work_Place5 in('广州市','深圳','珠海','中山','汕尾') )) as dc where row >= 0rnrn上面是出来的sql语句rn这个存储过程的总行数应该怎样查询出来呢?rn
关于reference count的问题
在下面这个函数中,我想通过excute()来由server构造一个IMyclass接口出去给客户使用,于是这样写。我觉得没有错压。rnSTDMETHODIMP CQuery::Execute(IMyClass **ppMy)rnrnCComObject* pMyClass;rnHRESULT hr = CComObject::CreateInstance(&pMyClass);rn_ASSERTE(SUCCEEDED(hRes));rnrnpMyClass->AddRef();rnrnpMyClass->Dosomething();rnrnhr = pMyClass->QueryInterface(IID_IMyClass,ppMy);rnrnpMyClass->Release();rnrnrn在客户那边就是用import typelibarary后的接口这样使用rn:rnIMyClass IM;rnIQuery IQ;rnIQ.CreateDispatch(L"server.Query.1").rnIQ.Excute((LPDISPATCH*)&IM)rnIM.Dosomething;rnIM.ReleaseDispatch();rn也没有错把,由server创建的IM我自己release();rn可是奇怪的是,我这个IM,release后server就结束了(难道计数出错了,server认为应该推出了?),不应该亚,应为我的IQ还在压。(说明一下,IQ是个全局的,我这里写的是示例代码。)rn为什么压,青执教!bow!
关于select count(*) 的问题!
比如表结构和数据如下:rnrnid typeid namernrn1 2 arnrn2 2 b rnrn3 3 crnrn4 3 drnrnrn我想实现 select count(*) as nums 。。。 where typeid=2 以及每一条记录的name,即所有的记录都出现,如下形式:rnrnnums namern2 arn2 brnrnrn请问如何写 sql ? mysql5.0 以上版本
关于count统计的问题
我用java写的,数据库是sybasern比如我我现在在table有个字段flagrnflag是标志位,值为0,1,2rn用num0,num1,num2分别统计下表中flag=0,1,2的时候的个数值是多少rnsql语句怎么写
关于COUNT( DISTINCT...)问题
这是官方手册的一句话:rn [b]In MySQL, you can obtain the number of distinct expression combinations that do not contain NULL by giving a list of expressions. In standard SQL, you would have to do a concatenation of all expressions inside COUNT(DISTINCT ...).[/b]rnrn 能解释一下吗?
oracle9的索引和count的问题,急啊!!
一个普通的数据表,有十几个varchar2的字段,在主键和个别字段上建有索引rn运行sql语句:rnrnSQL> select * from (select rownum as rid, t1.* from (select id,hphm,a.lkbh as lkrnmc,to_char(jlrq,'yyyy-mm-dd hh24:mi:ss') as jlrq,clsd,'详情' as xq, decode(hpzl,rn'01','大型汽车','02','小型汽车','其他') as hpzl,decode(jllx,'0','卡口数据','1','rn违法数据','卡口数据') as jllx,decode(sfxg,'0','未修改','1','已修改','未修改') asrn sfxg, decode(jllx,1,decode (sign((clsd-xzsd)/xzsd-0.5),1,'1603','1303'),'未超速rn') as wfdm from kakou.veh_info a where a.jlrq>to_date('2006-10-02','yyyy-mm-dd'rn) ) t1 where rownum<=100 ) t2 where t2.rid>0;rnrn已选择100行。rnrn已用时间: 00: 01: 117.53rnrnExecution Planrn----------------------------------------------------------rn 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=7324 Card=100 Bytes=rn 9700)rnrn 1 0 VIEW (Cost=7324 Card=100 Bytes=9700)rn 2 1 COUNT (STOPKEY)rn 3 2 TABLE ACCESS (FULL) OF 'VEH_INFO' (Cost=7324 Card=1249rn 51 Bytes=7122207)rnrnrnStatisticsrn----------------------------------------------------------rn 0 recursive callsrn 0 db block getsrn 70601 consistent getsrn 70536 physical readsrn 0 redo sizern 11768 bytes sent via SQL*Net to clientrn 1091 bytes received via SQL*Net from clientrn 8 SQL*Net roundtrips to/from clientrn 0 sorts (memory)rn 0 sorts (disk)rn 100 rows processedrnrnrnrnSQL> select count(a.id) from veh_info a where a.jlrq>to_date('2006-10-02','yyyy-rnmm-dd');rnrnCOUNT(A.ID)rn-----------rn 15160rnrn已用时间: 00: 00: 00.25rnrnExecution Planrn----------------------------------------------------------rn 0 SELECT STATEMENT Optimizer=CHOOSE (Cost=359 Card=1 Bytes=8)rn 1 0 SORT (AGGREGATE)rn 2 1 INDEX (RANGE SCAN) OF 'IN_VEH_INFO_JLRQ' (NON-UNIQUE) (Crn ost=359 Card=124951 Bytes=999608)rnrnrnStatisticsrn----------------------------------------------------------rn 0 recursive callsrn 0 db block getsrn 107 consistent getsrn 0 physical readsrn 0 redo sizern 373 bytes sent via SQL*Net to clientrn 425 bytes received via SQL*Net from clientrn 2 SQL*Net roundtrips to/from clientrn 0 sorts (memory)rn 0 sorts (disk)rn 1 rows processedrnrnrn表veh_info有500万数据,已经进行过全表统计分析,用的是dbms_stats.gather_table_stats包括索引。rnrn以上两个sql语句的查询条件都一样,一个是显示内容,一个是统计条数,为什么运行计划相差这么多,一个用到索引,一个没有用到索引。rnrn还有就是,查询语句有两个条件,分别都建有索引,单个条件查询的时候都用到了索引,两个条件组合起来就用不到索引了,这个为什么呢?
关于count的一个问题!
语句是这样的:rnSELECT JamKind, COUNT(*) AS CTrnFROM tblTrafficJamrnGROUP BY JamKindrnrn结果集里面并没有显示CT为0的行,请问如何加上这一行。
关于count(*)的问题
有a,b两个表,并且a.id=b.idrn如何用SQL语句来同时在一个视图内得到两个表的行数。
关于select的count问题
strSQL = ""rn strSQL = strSQL & "SELECT SEIKEIKI_CODE,MIN(OUT_TIME) AS MIN_TIME, "rn strSQL = strSQL & "MAX(OUT_TIME) AS MAX_TIME, "rn strSQL = strSQL & "WORKER_NAME,SHIFT,COUNT(NAME) AS NAME "rn strSQL = strSQL & "FROM D_LOTDATA "rn strSQL = strSQL & "WHERE APP_FLAG = 0 AND NAME = 'HONSU' "rn strSQL = strSQL & "GROUP BY WORKER_NAME,SHIFT,OUT_DATE "rnrn想要在记录集里统计NAME = 'HONSU'的数目,因为NAME也可以不等于'HONSU',所以上面的语句缩小了 MIN(OUT_TIME) AS MIN_TIME的范围,rn请问我如何在不缩小MIN(OUT_TIME) AS MIN_TIME的范围的同时,统计rnNAME = 'HONSU'的数目?
关于SELECT COUNT(*)的问题....
Adodc1.RecordSource = "SELECT COUNT(lhd1.ID) FROM lhd1"rnrn我怎么样才能把ID个数的值给一个变量?rnrnAdodc1.RecordSource = "SELECT COUNT(lhd1.ID) FROM lhd1 where ID between " & 80 & " and " & 90 & ""rn这样能知道ID号为80与90之间 有多少个IDrn我想一次就能得到0~10, 11~20,.... 91~100 这10个区间的值,该怎么做?
相关热词 c#检测非法字符 c#双屏截图 c#中怎么关闭线程 c# 显示服务器上的图片 api嵌入窗口 c# c# 控制网页 c# encrypt c#微信网页版登录 c# login 居中 c# 考试软件