草庐IT

GROUP_BY

全部标签

mysql - Group_concat 内部排序

This是我的fiddle。表格和数据是createtableTable3(MatchIDvarchar(10),ItemTypevarchar(10));insertintoTable3values('M001','Fruit'),('M001','Animal'),('M002','Fruit'),('M002','Vehicle');当您有一个按MatchID和ItemType排序的选择查询时,它正在返回selectMatchID,ItemTypefromTable3orderbyMatchID,ItemType;MATCHIDITEMTYPEM001AnimalM001Frui

mysql - 根据 Group By 中的最大列选择行

我正在尝试为电子游戏创建高分板。有一个users表:还有一个分数表:我试过使用这个查询:SELECTMAX(`scores`.`score`)ASmax_score,`scores`.`team`,`users`.`name`FROM`scores`LEFTJOIN`users`ON`users`.`id`=`scores`.`user_id`GROUPBY`scores`.`user_id`ORDERBYmax_scoreDESCLIMIT50返回此结果(示例):如您所见,用户FUNTIMES的210得分被归因于eagles而它应该归因于vikings根据scores表(FUNTIM

mysql - 具有较大 LIMIT 范围的 ORDER BY 查询非常慢

MySQL5.6,64位,RHEL5.8使用ORDERBY和LIMIT'row_count'(或LIMIT0,'row_count')对大表进行查询。如果“row_count”大于结果集的实际计数,将会非常非常慢。情况1:下面的查询非常快(没有“LIMIT”):mysql>SELECT*FROMsyslogWHERE(ReportedTimeBETWEEN'2013-11-04'AND'2013-11-05')ANDPriority情况2:下面的查询也很快('LIMIT5'):mysql>SELECT*FROMsyslogWHERE(ReportedTimeBETWEEN'2013-1

mysql - 使用 order by 时获取行位置

我希望按顺序获取一匹马的行号,这样我就可以看到它在订单中的位置。我用过下面的代码SELECT`odds`,(SELECTCOUNT(*)FROM`tom_cards`WHERE`Racetime`="14:30"OrderBy`Odds`)AS`position`,`Horse`FROM`tom_cards`WHERE`Racetime`="14:30"把这创建所有位置为8>oddspositionHorse>100.008CentralSchool>1.258Coologue>1.108MaduFou>33.008Quintano>66.008TheMobb>12.008TheWes

MySQL:GROUP BY 上的非聚合字段会发生什么情况?

我对MySQL中的以下行为有一个非常基本的问题。假设我们执行以下GROUPBY:SELECTa,b,SUM(c)FROMtableGROUPBYb;a字段发生了什么变化,它既不聚合也不包含在GROUPBY字段中?MySQL是否只是隐式地将FIRST(a)应用于a?如果是这样,这种行为是否一致,或者它是否从a的所有值中获取随机值? 最佳答案 MySQL>5.7.5这是一个非法查询。您将收到如下错误:ERROR1055(42000):Expression#1ofSELECTlistisnotinGROUPBYclauseandconta

Mysql ORDER BY 和 LIMIT 慢查询

我有以下查询,它在销售表中的60,000条记录上花费了大约20秒。我知道ORDERBY和LIMIT导致了这个问题,因为当ORDERBY被删除时,它会在0.10秒内返回。我不确定如何优化这个查询,有什么想法吗?解释输出在这里https://gist.github.com/anonymous/1b92fa64261559de32daSELECTsale.saleIDasid,node.titleaslocation,sale.saleTotalastotal,sale.saleStatusasstatus,payment.paymentMethod,field_data_field_ban

mysql - 如何在mysql上使用 "group by"之前的 "join"?

我有以下查询,其中包含重复的user_id。我不想看到一个以上的用户。我决定按以下方式使用groupby:SELECTu.`ID`,u.`user_login`,u.`user_registered`,u.`display_name`FROMpurchase_keypLEFTJOINusersuONp.user_id=u.idWHERE(`product_id`=1OR`product_id`=2)AND`create_date`='2014-09-01'groupbyp.user_idorderbyp.`create_date`asc但是有没有办法在加入之前进行分组?

mysql - 将 group_concat 的结果集限制为实际结果

我有以下查询,它大部分都在工作,但是当其中一个连接表返回不同数量的结果时,在group_concat()中返回了太多结果:selecta.sku,a.ek,a.mwst,concat('[[',group_concat('{"offer":',b.offer,',"minQuantity":',b.minQuantity,'}'),']]')offersA,concat('[[',group_concat('{"offer":',c.offer,',"minQuantity":',c.minQuantity,'}'),']]')offersB,concat('[[',group_con

php - 如何组合 GROUP_CONCAT 和 LEFT JOIN?

这是我的餐table动物:╔══════════╦══════╗║animal║id║╠══════════╬══════╣║dog║1║║cat║4║║cat║3║║bird║1║╚══════════╩══════╝这是我的表名:╔═══════╦══════╗║id2║name║╠═══════╬══════╣║1║alan║║2║bob║║3║john║║4║sam║╚═══════╩══════╝这是我的预期结果:╔══════════╦═════════════╗║dog║alan║║cat║sam,john║║bird║alan║╚══════════╩═════════

php - MySql 结合 LIMIT 和 ORDER BY

我要执行下面的命令SELECT*FROM`auktionen`LIMIT0,5ORDERBYcreatedatDESC这告诉我我有一个SQL语法错误。我followedthisquestionsanswer.每当我删除LIMIT或ORDERBY语句时,它都会再次执行:SELECT*FROM`auktionen`ORDERBYcreatedatDESCSELECT*FROM`auktionen`LIMIT0,5那么我究竟做错了什么? 最佳答案 ggwp.Thanksforthehint,addasanswerifyouwantitac