草庐IT

group-stack

全部标签

mysql - GROUP BY 聚合和 INNER JOIN

我试图尽可能地缩小问题的范围,它仍然是相当多的东西。这是无法按我想要的方式工作的查询:SELECT*,MAX(tbl_stopover.dist)FROMtbl_stopoverINNERJOIN(SELECTedges1.idid1,edges2.idid2,COUNT(edges1.id)numConnFROMtbl_edgesedges1INNERJOINtbl_edgesedges2ONedges1.nodeB=edges2.nodeAGROUPBYedges1.idHAVINGnumConn=1)AStbl_connONtbl_stopover.id_edge=tbl_con

mysql - 数据变更历史与审计表 : Grouping changes

假设我想将用户和组存储在MySQL数据库中。他们有一个关系n:m。为了跟踪所有更改,每个表都有一个审计表user_journal、group_journal和user_group_journal。MySQL触发器在每次INSERT或UPDATE时将当前记录复制到日志表(不支持DELETES,因为我需要应用程序用户删除记录的信息——所以有一个标记active将被设置为0而不是删除)。我的问题是:假设我一次将10个用户添加到一个组中。当我稍后在应用程序的用户界面中单击该组的历史记录时,我希望将这10个用户的添加视为一步,而不是10个独立的步骤。是否有一个很好的解决方案来将这些更改组合在一起

MySQL COUNT NULL 内容按列,GROUP 按列

如何按字段/列计算非空条目?我看到了几个按行计数的答案,但无法破解如何对列进行计数。输入:╔════╦════════╦════════╦════════╗║id║field1║field2║field3║║1║do║re║me║║2║fa║║so║║3║la║te║║║4║da║re║║╚════╩════════╩════════╩════════╝输出:id4field14field23field32我正在尝试衡量我正在迁移的一个非常脏的数据库中的字段使用情况。这个数据库中大约有50列,所以我正在寻找一种不涉及输入每个列名称的方法。由于数据存储中的不一致,我可能还必须将该搜索扩展

php - MySQL GROUP BY 和 ORDER BY DESC

这个问题在这里已经有了答案:Gettopnrecordsforeachgroupofgroupedresults(12个答案)关闭9年前。这是我的完整查询:SELECT*FROM`clientgroupassign`LEFTJOIN`clients`ON`clientgroupassign`.clientId=`clients`.clientIdLEFTJOIN`users`ON`carerId`=`userId`LEFTJOIN(SELECT*FROM(SELECT*FROM`contacts`WHERE`contactGroup`=4ORDERBY`contactId`DESC)a

MySQL Group By每种类型的前N个数

我有一个这样的表:RankLetter1A2A3B4A5C6A7C8C9B10C我需要按升序排列的每个字母的前2个:RankLetter1A2A3B5C7C9B我该怎么做?使用GROUPBY仅获得前1名是相当简单的,但我似乎无法让它为多个条目工作 最佳答案 SELECTmo.Letter,md.RankFROM(SELECTDISTINCTletterFROMmytable)moJOINmytablemdONmd.Letter>=mo.LetterANDmd.Letter您需要在(Letter,Rank)上有一个复合索引(按此顺序)

php - MySQL GROUP BY UNIX 时间戳

我正在尝试从MySQL数据库中获取一些行,并按发布日期对它们进行分组。最终结果我想要以下..星期一-第1条-第2条-第3条星期二-第1条-第2条星期三-第1条-第2条-第3条-第4条等等,我不确定这是否可以在没有PHP做额外工作的情况下单独在MySQL中完成。这是我目前的查询,但似乎没有按天分组。SELECTcms_news.news_id,cms_news.news_title,cms_news.news_date,cms_news.news_category,cms_news.news_source,cms_news.news_type,cms_news.news_contentF

mysql - 对可排序日期进行分组时,从 group_concat 中选择第一行和最后一行

引用我之前关于groupconcat的问题Mysqlagain,groupbyanddisplayrestofrows我需要从该查询中获取第一天和最后一天例如row3from8,9,10tofirstcollumn8,lastcollumn10row5from21,22,23,24,28,29,30tofirstcollumn21,lastcollumn30row6from17,21,22,23,24,25tofirstcollumn17lastcollumn25SUBSTR(GROUP_CONCAT(DAY),-1)asfl但它给了我最后一个字符,例如,有几行有1个或2个字符1,2,

php - Laravel "group by having"查询问题

拜托,我正在尝试在原始sql中运行一个看起来像这样的查询SELECTCOUNT(cntr)count,address,descriptionFROMrestiGROUPBYcntr=HAVINGcount>1在Laravel中。我试过了DB::table("resti")->select(DB::raw("COUNT(cntr)count,address,description"))->groupBy("cntr")->havingRaw("count>1")->get();但它给出了一些总体错误。 最佳答案 你的SQL查询应该是这

使用 Group_Concat 和 Concat 时 MySQL 截断结果

我有以下SQL(我删除了一些选择fi:SELECTnode_revisions.titleAS'Task',node_revisions.bodyAS'Description',Date_format(field_due_date_value,'%e/%c/%Y')AS'DueDate',users.nameAS'UserName',(SELECTGROUP_CONCAT(Concat(CHAR(10),Concat_ws('-',name,From_unixtime(TIMESTAMP,'%e/%c/%Y')),CHAR(10),COMMENT))FROMcommentsWHEREc

mysql - 来自 GROUP_BY 的两个 LEFT JOIN 的 GROUP_CONCAT 的奇怪重复行为

Here是我所有表的结构和查询(请关注最后查询,附在下面)。正如您在fiddle中看到的,这是当前输出:+---------+-----------+-------+------------+--------------+|user_id|user_name|score|reputation|top_two_tags|+---------+-----------+-------+------------+--------------+|1|Jack|0|18|css,mysql||4|James|1|5|html||2|Peter|0|0|null||3|Ali|0|0|null|+-