草庐IT

分组会

全部标签

mysql - 分组依据并选择第一个不是 "empty"字段

在非规范化表结构中,我需要为每个邮政编码选择第一个非空(长度!=0且非空)列。表格布局(两列都是文本):|ZIP|Contact|...|69123|||69123|WS||54516|null||54516|CS||72226|RH||72226|PH|结果应该是这样的:|ZIP|Contact|...|69123|WS||54516|CS||72226|RH|像这样:SELECTZIP,fristNotEmpty(Contact)FROMmasterdataGROUPBYZIP 最佳答案 SELECTZIP,min(Contac

php - 按依赖于另一列的列分组

这是我试图通过MySQL查询彻底解决的问题的简化View。这不是我正在处理的实际表。如果我有下表:NameBuyerIDJohnFred4JohnSmith3FredSally2JohnKelly1我想要一个返回以下内容的查询:NameBuyerIDJohnFred4FredSally2这样我们按“名称”分组并显示最新的行/买家/ID。我试图通过执行嵌套的select语句来实现这一点,其中我首先执行“ORDERBYIDDESC”,然后在最外面的SELECT上执行“GROUPBYNAME”。而且,虽然这是解决问题的迂回方式,但似乎根据排序,正确的选择会返回给我。遗憾的是,“GROUPBY

mysql - 如何计算复杂分组依据后前一行/天的百分比增加?

我有一张IntradayPrices1Minute表,其中存储了1分钟时间范围的股票开盘价、最高价、最低价和收盘价:CREATETABLE`IntradayPrices1Minute`(`ticker`varchar(10)NOTNULLDEFAULT'',`datetime`datetimeNOTNULL,`volume`mediumint(11)unsignedNOTNULL,`open`decimal(8,4)unsignedNOTNULL,`high`decimal(8,4)unsignedNOTNULL,`low`decimal(8,4)unsignedNOTNULL,`cl

mysql - 子选择和分组依据

我有两个表:主要:id_main,field1,过滤器main_logs(5000万行):autoinc、id_main、路径我正在寻找以下结果:id_main,field1,最常见的路径我尝试了以下查询:selectid_main,field1,(selectpath,count(*)ascptfrommain_logwheremain_log.id_main=main.id_maingroupbypathorderbycptdesclimit1)frommainwherefilterin(1,3,5);Mysql返回:操作数应包含1列如果我删除路径,结果是正确的,但我错过了路径值。

mysql - 按月对 MySQL 行进行分组并统计数据直到每个月

我有一个名为“results”的表,其中有很多行和一个名为“timestamp”的列。我想对每个月的行数进行分组。但对于其中的每一个,我还想考虑前几个月的行。如果我有Jun/13Jun/13Jun/13Jul/13Jul/13Jul/13Jul/13Jul/13Aug/13Aug/13Aug/13Aug/13Aug/13Aug/13Aug/13结果会是3Jun/138Jul/1315Aug/13这是我现在拥有的,但没有考虑前几个月。SELECTDATE_FORMAT(FROM_UNIXTIME(timestamp),'%e%b%Y'),COUNT(1)FROMresultsGROUPB

mysql - SQL:选择最新主题和最新帖子,按论坛分组,按最新帖子排序

我正在尝试获取最新主题(id、主题、时间戳、author_id)和最新帖子(id、thread_id、时间戳、author_id)每个论坛(id,name)按最新帖子排序,独立于话题的创建日期。为什么?我希望能够显示如下详细信息:"ThelatestAnswerofforum$forum_idwasgivenonQuestion$thread_id.Hereitis:$post_id"SELECTf.idASforum_id,f.nameASforum_name,t.idASthread_id,t.topicASthread_topic,t.tsASthread_timestamp,p

mysql按月分组,自定义开始日期

在mysql中有没有一种方法可以按月分组,但可以自定义开始日期。假设我想按月计算登录次数,但条件是该月从用户注册时开始。例如,用户A于1月30日注册,用户B于1月15日注册我应该按如下方式对登录进行分组:*UserA:January30th-February28th,March1st-March30th,March31-April30andsoonandsoforth*UserB:January15th-February14th,February15th-March14thandsoonandsoforth我想我需要使用像DATE_ADD('2013-01-30',INTERVAL1M

mysql - 通过获取所有表结果对每行进行分组

对于我的搜索索引,我需要创建一个sql来获取服务表结果。例如,我有以下表格;标签(在这个表中我得到了所有的标签)video_tags(在此表中,我得到与标签id相关的video_id)视频(所有视频)当我想获取带有标签的电影时,我使用以下查询;SELECTvideos.id,videos.idASvideo_id,videos.video_titleASvideo_title,Group_Concat(DISTINCTt.tag_nameSEPARATOR'|')AStag_namesFROMvideosJOINvideo_tagsASvtONvt.video_id=videos.id

mysql - 在 mysql 中按小时分组,但也包括小时 + 1 中的第一个值

假设您有这样的数据:timevalue10:00510:151210:301510:452711:0029像这样的查询:SELECTMAX(value)-MIN(value),HOUR(time)FROMmytableGROUPBYHOUR(time);您将获得:valuetime2210但是,我需要它包含11:00的值,因此结果是24(29-5),而不是22。有没有办法在SQL中执行此操作,或者我别无选择,只能在代码级别手动执行此操作(因此,没有分组,只需获取数据并手动减去)。 最佳答案 根据您的数据的一致性,您可以通过自连接来实

mysql - 仅按特定行分组显示所有数据 : Select * from table group by column having column = 'value'

我用的是mysql。我的table看起来像这样:最后我尝试使用这个查询SELECT*FROMmovieGROUPBY`group`HAVINGcateogry='TV'我希望此查询结果为:显示除GROUPBYTV类别之外的所有内容,其中category='TV'我想要这个结果但是我的查询给了我这个结果(HAVING在查询工作中作为WHEREclouse)如果我使用这个查询SELECT*FROMmovieGROUPBY`group`它给了我这个结果我想要->QUERY->GROUPBYgroup(ID号9和ID1、2、3视为不同的组名)IFgrouphasallsamevaluesBUT