草庐IT

count_cumulative

全部标签

mysql - 我应该避免在 InnoDB 中一起使用 COUNT 吗?

现在,我正在考虑是否使用COUNT(id)或“count”列。我听说InnoDBCOUNT在没有WHERE子句的情况下非常慢,因为它需要锁定表并进行全索引扫描。使用WHERE子句时是否有相同的行为?例如,如果我有一个包含100万条记录的表。在没有WHERE子句的情况下执行COUNT将需要使用索引查找100万条记录。如果添加WHERE子句将符合条件的行数从100万减少到500,000,查询会变得明显更快吗?考虑SO上的“Badges”页面,在badges表中添加一个名为count的列,并在用户获得该特定徽章时递增它比这样做更快SELECTCOUNT(id)FROMuser_badgesW

mysql - 选择 id WHERE COUNT(*) > X ? - 如何从表中有超过 X 条记录的任何用户那里获取记录?

显然标题中的查询不起作用,但它可能以一种天真的方式说明了我想做什么。我有一个表,其中包含一些由id列标识的用户。此ID在数据库中不是唯一的。它标记一个用户可能在我的表中有多个记录。如何显示表中超过10条记录的所有用户(由id标识)的完整记录? 最佳答案 使用having代替where:SELECTidFROM(SELECTid,COUNT(*)ascntFROMsomewhereGROUPBYidHAVINGcnt>1)temp_table 关于mysql-选择idWHERECOUNT(

MySQL 按 COUNT DISTINCT 排序

2.8.72.8.32.8.22.8.72.8.52.8.72.8.72.8.52.6.02.8.32.6.42.6.32.8.42.8.02.6.32.8.52.8.52.8.52.6.02.8.2我如何带来一个按这些版本的数量排序的唯一值版本?在导出我想得到以下信息:2.8.552.8.742.6.022.6.322.8.222.8.322.8.422.6.412.8.01ORDERBY计数唯一版本))抱歉我的英语不好 最佳答案 SELECTversion,COUNT(*)ASnumFROMmy_tableGROUPBYvers

mysql - 忽略 COUNT 中的重复行

下面的查询给出了exp_judging表中pre字段值为1的行数,其中exp_submissions中也有member_group为5的匹配列SELECTCOUNT(*)AScount_resultFROMexp_judgingASjudLEFTJOINexp_submissionsASsubONjud.rel_id=sub.idWHEREjud.pre=1ANDsub.member_group=5这很好用。但是,以后'exp_judging'表中会有多行具有相同'rel_id'的行。如何确保每一行中只有一个被计算在内?我尝试将GROUPBY添加到末尾,但它只显示1个结果,而不是之前的

MySQL INSERT 在同一张表上使用带 COUNT() 的子查询

我在正确执行INSERT查询时遇到问题,而且我似乎无法在Google或StackOverflow上找到任何解决此特定问题的方法。我正在尝试为特色条目创建一个简单的表,其中entry_id连同它的当前订单一起保存到表中。我想要的输出是这样的:如果featured表当前有这三个条目:featured_identry_idfeatured_order127025414232我希望下一个条目以featured_order=3保存。我正在尝试使以下查询正常工作但运气不佳:INSERTINTO`featured`(`entry_id`,`featured_order`)VALUES(200,(SE

mysql - SELECT COUNT(复杂查询中的免费房间类别)

我正在开发酒店客房预订系统。该系统将包含一定数量的酒店、房间和房间类别。我已经为这些东西准备好了表格。目前我需要构建一个查询来获取给定日期每个房间类别的可用房间数量。我的房间表是这样的:--------------------------------------------|id|name|hotel_id|room_category_id|--------------------------------------------|1|Room#1|1|1||2|Room#2|1|1||3|Room#3|1|2||4|Room#4|1|2||5|Room#5|1|3||6|Room#6|

mysql - 在 InnoDB 表上使用 ZF2 分页器的 Count() 的糟糕性能

我正尝试在一些大型(在没有搜索过滤器的最坏情况下大约1000万)记录集上使用ZF2分页器。我的表是InnoDB格式的,据我所知,它并没有作为元数据的一部分保留一个明确的计数。我意识到我可以扩展Zend\Paginator\Adapter\DbSelect类并实现我自己的count()方法,该方法使用我手动存储在另一个表中的计数数据,但我不确定如何存储所有的计数可能进行的搜索排列。默认ZF2DbSelectadapter使用此方法:rowCount!==null){return$this->rowCount;}$select=clone$this->select;$select->res

php - MySQL 查询以最大 event_count 分组?

我需要计算事件组之间的时间差。每个“事件组”在event_count列=1时重新开始,最大event_count可以是大于1的任何数字。我如何在MySQL中执行此操作?这是表格和一些测试数据:表格CREATETABLE`monitoring`(`event_id`int(10)unsignedNOTNULLAUTO_INCREMENT,`hosting_id`char(36)DEFAULTNULL,`event_timestamp`datetimeDEFAULTNULL,`event_type`tinyint(3)unsignedDEFAULTNULL,`event_count`int

MySQL:在 SELECT 语句中使用 COUNT 函数

我对MySQL查询相当陌生,尤其是更复杂的查询。我有两个要连接在一起的表(x和y)。表x包含名称、ID和TotalNum,其中y包含ID和在线。所以它看起来像这样:表格XName|Store|TotalNumBlah|1|3Blah1|2|2Etc..表YStore|Lane|Online1|1|11|2|11|3|02|1|12|2|0Etc..我正在尝试将我的表格连接在一起并返回在线=1的计数所以,我追求的结果是:Name|TotalNum|OnlineBlah|3|2Blah1|2|1Etc..到目前为止,我有以下查询:SELECTs.Name,s.TotalNum,COUNT(

sql - MYSQL:带有 GROUP BY、LEFT JOIN 和 WHERE 子句的 COUNT 不返回零值

我确定这有一个非常简单的答案,但我似乎找不到它(不确定要搜索什么!)。标准的计数/分组查询可能如下所示:SELECTCOUNT(`t2`.`name`)FROM`table_1``t1`LEFTJOIN`table_2``t2`ON`t1`.`key_id`=`t2`.`key_id`WHERE`t1`.`another_column`=123这按预期工作,如果没有找到行则返回0。然而:SELECTCOUNT(`t2`.`name`)FROM`table_1``t1`LEFTJOIN`table_2``t2`ON`t1`.`key_id`=`t2`.`key_id`WHERE`t1`.