草庐IT

分组传送网

全部标签

通过添加聚合改进了 MySQL 分组查询性能

我在MySQL中有下表:CREATETABLE`events`(`pv_name`varchar(60)COLLATEutf8mb4_binNOTNULL,`time_stamp`bigint(20)unsignedNOTNULL,`event_type`varchar(40)COLLATEutf8mb4_binNOTNULL,`has_data`tinyint(1)NOTNULL,`data`jsonDEFAULTNULL)ENGINE=InnoDBDEFAULTCHARSET=utf8mb4COLLATE=utf8mb4_binROW_FORMAT=COMPRESSED;ALTER

MySQL总和排名,按流派分组,限制10

我有这样的MySQL表,我想计算每个类型的TOP10:rankings_2016(trackId、genreId、排名、时间戳)流派(genreId,genreName)轨道(trackId、trackName、genreId)艺术家(artistId,artistName)artists_tracks(artistId,trackId)我想获得每个流派、每个轨道和每个艺术家的TOP10排名。一首轨道或一位艺术家最多可以有2种流派。排名可能是一样的。只是为了得到LIMIT2的想法:genreId|trackId|ranking------------------------------

mysql - 如何对两个表的值求和并按日期分组

我正在构建一个交易系统,用户需要按日期了解特定用户(uid)的运行账户余额,包括他们从交易中赚取了多少(结果表)以及他们从账户中存入或提取了多少(调整)表)。这是sqlfiddle和表:http://sqlfiddle.com/#!9/6bc9e4/1Adjustmentstable:+-------+-----+-----+--------+------------+|adjid|aid|uid|amount|date|+-------+-----+-----+--------+------------+|1|1|1|20|2019-08-18||2|1|1|50|2019-08-2

MySQL 依次选择和分组行

我正在开发一个拍卖应用程序,其中的出价保存在具有以下格式的表格中:id|user_id|auction_id|placed_at我想按用户ID对出价进行分组并选择它们的计数,但前提是用户ID一个接一个地出现。出价按placed_at降序排列。这就是我的意思:1|1|1|01-04-201000:00:062|1|1|01-04-201000:00:053|2|1|01-04-201000:00:044|2|1|01-04-201000:00:035|3|1|01-04-201000:00:026|2|1|01-04-201000:00:01在这种情况下,我应该得到:count|user

三十八、动态规划——背包问题( 01 背包 + 完全背包 + 多重背包 + 分组背包 + 优化)

动态规划-背包问题算法主要内容一、基本思路1、背包问题概述2、动态规划(DP)问题分析二、背包问题1、01背包问题2、完全背包问题3、多重背包问题4、分组背包问题三、例题题解一、基本思路1、背包问题概述01背包问题:条件:N个物品容量为V的背包,每件物品最多用1次,其中物品信息体积为Vi,价值为Wi。目标:选出物品,使价值最大(不一定装满背包)。特点:每件物品最多只用1次完全背包问题:特点:每一件物品都有无限个多重背包问题:特点:每个物品有si个(有限个)优化:当面对物品种类比较多的时候,复杂度较高,可以进行优化操作;DP优化一般是对动态规划的方程和代码做等价变形。分组背包问题:特点:有N组物

mysql - 哪些字段应该一起索引?通过...分组?订购?

我正在尝试加快我目前拥有的查询:SELECT*FROM`events`WHERE(field1='somestring'orfield1='somestring')andis_current=trueGROUPBYevent_idORDERBYpub_date这大约需要30秒。field1是一个varchar(150)我目前正在编制索引field1,is_current,event_id,pub_data慈善机构,pub_date,is_current以及所有字段单独...我真的不确定应该将哪些字段一起索引,当我删除orderby时,查询速度最高可达8秒左右,如果我同时删除orderb

对来自两个表的数据进行分组的 SQL 查询

我有3个表:用户(id,姓名)订单(id,userId)Orders_Items(id、orderId、状态)起初我想像这样列出所有用户及其各自的订单数:A,1个订单B,5个订单这很简单,我正在做一个“从用户中选择名称,计数(id),其中users.id=orders.userId按名称分组的订单”。现在,我想进一步过滤此数据以仅显示订单中商品状态为“未处理”的用户。我不确定如何对2个表中的数据进行分组。最后,我希望获得如下数据:(未显示,没有任何订单状态为未处理)B,3个订单(2个订单没有状态=未处理的商品)。谢谢! 最佳答案 使

mysql - GROUP_CONCAT 有额外的分组吗?

我已经开始编写一个脚本来生成关于特定文章被调用的频率和时间的统计信息SELECT`title`,`page_id`,COUNT(*)AS`total`,GROUP_CONCAT(DISTINCT`date_created`ORDERBY`date_created`SEPARATOR',')datesFROM`statistics`WHERE`supplier_id`='27'GROUPBY`title`ORDERBY`title`;产生[0]=>Array([0]=>Array([total]=>3[dates]=>2011-04-26,2011-04-27)[statistics]=

mysql - 按 id 对行进行分组,然后将不同的组相互比较

我有一张表,里面有很多seq_id的数据。每个seq_id在不同的行上有很多命中(hit_name_id)。我想做的是将seqs分组,如果它们的命中率相似(即共享约70-80%的命中率),例如下表中的序列1,2和4实际上非常相似,因此它们很可能是一样。我希望能够为所有相似的命中分配一个组ID,以便我以后可以只提取唯一的序列。我创建这个查询是为了证明每个seq_id可以有很多可能共享也可能不共享的命中:mysql>SELECTseq_id,GROUP_CONCAT(hit_name_idORDERBYhit_name_id),count(hit_name_id)FROMpolished_

mysql - 选择最新的作为分组依据(或其他解决方案......)的一部分

我有一个表格,其中重要的列如下所示:usernamesourcedescription我的目标是获取用户/来源组合唯一的10条最新记录。来自以下数据:1katiefacebooklovedit!2katiefacebookitcouldhavebeenbetter.3tomtwitterlessthen1404katietwitterWowzers!查询应该返回记录2、3和4(假设更高的ID更近——实际表使用时间戳列)。我当前的解决方案“有效”,但需要1次选择生成10条记录,然后1次选择以获得每行的正确描述(因此11次选择生成10条记录)......我不得不想象有更好的方法去。该解决方