草庐IT

mooncatventures-group

全部标签

MySql GROUP_CONCAT 与 GROUP BY 每组第 n 行

SQLfiddle:http://sqlfiddle.com/#!9/e7f72/2假设一个名为testt的表中有10条记录(id不是null自动递增)。如果我要这样做SELECTGROUP_CONCAT(id)FROMtestt我希望结果看起来像1,2,3,4,5,6,7,8,9,10我怎样才能让结果看起来像这样:1,23,45,67,89,10 最佳答案 您需要按id的函数进行分组。像这样:selectgroup_concat(idorderbyid)fromtesttgroupbyfloor((id-1)/2)

mysql - 使用 count 和 group by 时如何加快查询速度

我有两个名为seller和item的表。它们通过使用“n”到“m”外键关系的第三个表(seller_item)连接。现在我尝试回答这个要求:“作为卖家,我想要一份我的竞争对手的list,其中包含我正在销售的商品数量,他们也在销售”。因此,所有卖家的列表以及与一个特定卖家相关的重叠商品的数量。我还希望按计数和限制对它进行排序。但是查询使用的是非常慢的临时表和文件排序。解释说:在哪里使用;使用索引;使用临时的;使用文件排序我怎样才能加快速度?这里是查询:SELECTCOUNT(*)ASitemCount,s.sellerNameFROMsellers,seller_itemsiWHEREs

mysql - 在 mysql WHERE 子句中使用 GROUP_CONCAT 和 FIND_IN_SET

我有这个查询,想使用学生电子邮件从表中获取约会数据,但出现此错误Unknowncolumn'stu'in'whereclause'selecta.*,GROUP_CONCAT(e.value)asstuFROMwp_ea_appointmentsajoinwp_ea_fieldseona.id=e.app_idWHEREa.date>DATE('2019-02-14')ANDFIND_IN_SET('jan@gmail.com',stu)GROUPBYa.id 最佳答案 FIND_IN_SET条件应该包含在HAVING语句中,而不是

php - 如何设置全局 group_concat_max_len

PHP代码是什么SETGLOBALgroup_concat_max_len=15000或SETSESSIONgroup_concat_max_len=15000与MySQL? 最佳答案 您可以查询一下吗?$query='SETGLOBALgroup_concat_max_len=15000';mysql_query($query); 关于php-如何设置全局group_concat_max_len,我们在StackOverflow上找到一个类似的问题: htt

mysql right join with group by 问题

我有2个表:LandingPages-包含每个事件的着陆页。报告-包含每个着陆页的点击和转化。我尝试进行查询,以获取每个着陆页的点击次数和转化次数的总和,但我希望如果着陆页未收到任何点击和转化(并且未显示在报告表中),那么我希望返回0作为结果。到目前为止我所做的是:SELECTl.LandingPageId,SUM(Hits)ASHits,SUM(PixelSum)ASConversionFROMReportcRIGHTJOINLandingPageslON(c.LandingPageId=l.LandingPageId)WHEREc.CampaignId=xANDDayDate>'y

sql - 显示 GROUP BY 中的所有值

如何通过语句获取组中的所有值?mysql>select*frommytable;+------+--------+--------+|name|amount|status|+------+--------+--------+|abc|12|A||abc|55|A||xyz|12|B||xyz|12|C|+------+--------+--------+4rowsinset(0.00sec)mysql>selectname,count(*)frommytablewherestatus='A'groupbyname;+------+----------+|name|count(*)|+-

mysql - 如何使用 group by 返回最近的值

我有这个问题:SELECThistory.trackid,tracklist.artist,tracklist.event,tracklist.data,history.dateFROMhistoryJOINtracklistONhistory.trackid=tracklist.trackidGROUPBYtrackidORDERBYhistory.dateDESC但是当我按历史分组时,我想返回最近的trackid(到date)。尝试使用GROUPBY和ORDERBYDESC,但不是最新的。我哪里错了? 最佳答案 之所以没有按最近

mysql - IN 子查询中的 GROUP_CONCAT

SELECTA.id,A.title,FROM(`table`)asAWHEREA.active='1'ANDA.idIN(SELECTGROUP_CONCAT(B.id)fromBwhereuser=3)如果我仅从用户=3的B启动子查询SELECTGROUP_CONCAT(B.id),我将获得1,2,3,4。但是,如果我启动整个查询,我只会获得一行。但是如果我尝试用它的值(1,2,3,4)替换子查询SELECTA.id,A.title,FROM(`table`)asAWHEREA.active='1'ANDA.idIN(1,2,3,4)我获得了4行……我需要。我的错误在哪里?

计算值上的 MySQL GROUP BY 给出错误 - 使用其他值会产生意外结果

此查询返回所有23个music.id:39,64,1327,1608,1644,1657,1666,1676,1681,1686,1691,1711,1726,1730,1811,1851,2346,2440,2967,2968,2996,2998,3110但是...我想根据计算值进行分组,然后按类别分组(因为“名称”对于每条记录都是唯一的,而类别不是)SELECTmusic.id,music.nameASname,music.filename,music.url_name,music.file_path_high,music.filesize,music.categoriesASca

mysql - SQL 查询返回一列 "grouped"另一列的三个最高值

假设我有一个这样的表:PlayerScoreA5B4A3B2A1B1A2B3A4B5我需要一个SQL查询,它将按玩家“分组”的降序返回每个玩家的三个最高分数,即PlayerScoreA5A4A3B5B4B3非常感谢任何指点。 最佳答案 这是一种老式的(阅读:基本sql)方法,可以生成每组前n名。您可以在组条件下将表加入自身(这里是玩家)并在右侧选择得分较高的记录;如果有三个或更少这样的记录,则该行是每组前n行之一。selectplayer.player,player.scorefromPlayerleftjoinPlayerp2on