mysql group by自定义_mysql – GROUP BY和自定义顺序

我已经阅读了

MySQL order by before group by的答案,但是将它应用于我的查询最后会在子查询中找到一个子查询,这是一个相当简单的案例,所以我想知道这是否可以简化:

带有样本数据的模式

为简洁起见,我省略了成员表中的其他字段.此外,在实际应用程序中还有更多表加入,但这些表很容易加入.这是给我问题的membership_stack表.

CREATE TABLE members (

id int unsigned auto_increment,

first_name varchar(255) not null,

PRIMARY KEY(id)

);

INSERT INTO members (id, first_name)

VALUES (1, 'Tyler'),

(2, 'Marissa'),

(3, 'Alex'),

(4, 'Parker');

CREATE TABLE membership_stack (

id int unsigned auto_increment,

member_id int unsigned not null,

sequence int unsigned not null,

team varchar(255) not null,

`status` varchar(255) not null,

PRIMARY KEY(id),

FOREIGN KEY(member_id) REFERENCES members(id)

);

-- Algorithm to determine correct team:

-- 1. Only consider rows with the highest sequence number

-- 2. Order statuses and pick the first one found:

-- (active, completed, cancelled, abandoned)

INSERT INTO membership_stack (member_id, sequence, team, status)

VALUES (1, 1, 'instinct', 'active'),

(1, 1, 'valor', 'abandoned'),

(2, 1, 'valor', 'active'),

(2, 2, 'mystic', 'abandoned'),

(2, 2, 'valor', 'completed'),

(3, 1, 'instinct', 'completed'),

(3, 2, 'valor', 'active');

我无法更改数据库架构,因为数据与外部数据源同步.

询问

这是我到目前为止:

SELECT m.id, m.first_name, ms.sequence, ms.team, ms.status

FROM membership_stack AS ms

JOIN (

SELECT member_id, MAX(sequence) AS sequence

FROM membership_stack

GROUP BY member_id

) AS t1

ON ms.member_id = t1.member_id

AND ms.sequence = t1.sequence

RIGHT JOIN members AS m

ON ms.member_id = m.id

ORDER BY m.id, FIELD(ms.status, 'active', 'completed', 'cancelled', 'abandoned');

这可以按预期工作,但如果他们的“最近序列”涉及多个团队,则成员可能会多次出现.我需要做的是再次在id上聚合并选择每个组中的FIRST行.

然而,这会带来一些问题:

>有no FIRST() function in MySQL

>这整个结果集将成为子表(子查询),这在这里不是什么大问题,但查询在应用程序上非常大.

>它需要与ONLY_FULL_GROUP_BY mode兼容,因为它在MySQL 5.7上默认启用.我没有检查但是我怀疑FIELD(ms.status,’active’,’completed’,’cancel’,’abandoned’)被认为是这个结果集的功能依赖字段.该查询还需要与MySQL 5.1兼容,因为这是我们目前正在运行的.

目标

| id | first_name | sequence | team | status |

|----|------------|----------|----------|-----------|

| 1 | Tyler | 1 | instinct | active |

| 2 | Marissa | 2 | valor | completed |

| 3 | Alex | 2 | valor | active |

| 4 | Parker | NULL | NULL | NULL |

我该怎么办?

编辑:我注意到有些成员不属于任何团队.这些成员应包含在结果集中,并为这些字段使用空值.更新问题以反映新信息.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/432589.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SharePoint 2010 RBS 安装和配置遇到的一个问题

在按照微软官方的文档按照配置的时候遇到下面问题&#xff1a; <Event xmlns"http://schemas.microsoft.com/win/2004/08/events/event"> - <System><Provider Name"RBS" /> <EventID Qualifiers"0">18639</EventID&…

X210烧写linux系统

准备&#xff1a; x210开发板USB OTG线串口线一张SD卡windows PC 说明&#xff1a; 开发板里面已经有系统&#xff0c;为wince系统&#xff0c;wince系统的调试串口是UART0准备烧写为linux系统&#xff0c;调试串口是UART2 操作及原理&#xff1a; 1. 破坏EMMC里面的bootloader…

mysql+ubunt+绿色安装_Mysql在ubuntu18上的安装及简单使用

数据相关行业都离不开数据库&#xff0c;mysql在ubuntu上的安装比在windows上安装简单多了&#xff0c;下面我记录一下自己成功安装的步骤和使用。1.安装软件首先更新一下源&#xff1a;sudo apt-get update然后安装mysql服务器端&#xff1a;sudo apt-get install mysql-serve…

小组互评(杨波组)

我组经过认真使用杨波组的软件有以下心得&#xff1a; 刘铸辉&#xff1a;界面挺美观的&#xff0c;功能实现也不错&#xff0c;对学生查询教室这方面实用性很好&#xff0c;就是功能布局界面有点小&#xff0c;希望下一个版本可以改善下 解凤娇&#xff1a;首先此软件的名字ji…

矩阵运算——平移,旋转,缩放

平时开发程序&#xff0c;免不了要对图像做各种变换处理。有的时候变换可能比较复杂&#xff0c;比如平移之后又旋转&#xff0c;旋转之后又平移&#xff0c;又缩放。 直接用公式计算&#xff0c;不但复杂&#xff0c;而且效率低下。这时可以借助变换矩阵和矩阵乘法&#xff0c…

sql字符串拼接_Mybatis的SqlSession执行sql过程

上一篇分析了SqlSession执行sql的过程&#xff0c;其中并没有分析sql是从哪里来的&#xff0c;今天就来仔细分析下。Sql来源从上一篇的最后一步执行sql那里倒推sql的来源&#xff0c;源码主要过程如下图&#xff1a;可以看到最后是通过BoundSql直接获取的sql&#xff0c;然后往…

KMP算法----java实现

字符串的模式匹配本文先实现最基本的回溯实现的已经KMP算法&#xff0c;BM算法后面博文继续实现。ps:本篇博文强烈参考了July大神的作品&#xff0c;地址http://blog.csdn.net/v_july_v/article/details/6545192.再次感激大神~~ 1.最基本的回溯实现字符串模式匹配 package com.…

深入浅出FSUIPC的作用以及使用方法

看此贴前您需要掌握的技能或知识&#xff1a;1. 有FSX或FS2004并正确安装了FSUIPC 2. 具备一定的C语言理解能力&#xff0c;C语言是一切高级语言的基础&#xff0c;单片机主要也用的C语言。 3. 掌握以下几种编程语言之一即可&#xff1a; VC\VB\C#\DELPHI\JAVA\CMFC\.NET版的C或…

PHP面向对象2之变量、方法

1 <?php2 /**3 * PHP面向对象基础 调用变量4 */5 class Computer{6 //字段成员的声明格式&#xff1a;修饰符 变量名[xxx]7 public $_name;//public 表示类外可以访问&#xff0c;为公有变量8 public $_model;9 } 10 //创建一个对象…

在 VC6 中使用 GdiPlus-安装

安装三部曲&#xff1a; Step1&#xff1a;下载 GdiPlus SDK 文件包&#xff1b; 链接地址1&#xff1a;http://www.codeguru.com/code/legacy/gdi/GDIPlus.zip 链接地址2&#xff1a;http://www.codersource.net/samples/mfcgdiplus.zip Step2&#xff1a;安装&#xff1b; &a…

算法训练|实现 Trie (前缀树)

208. 实现 Trie (前缀树) - 力扣&#xff08;LeetCode&#xff09; 总结&#xff1a; Trie&#xff0c;又称前缀树或字典树&#xff0c;是一棵有根树&#xff0c;其每个节点包含以下字段&#xff1a; 指向子节点的指针数组 children。对于本题而言&#xff0c;数组长度为 26…

ASP.NET MVC 的多国语系支持

ASP.NET MVC 的多国语系支持 posted on 2014-05-14 11:31 stickout 阅读(...) 评论(...) 编辑 收藏 转载于:https://www.cnblogs.com/linhui/p/3727364.html

airtest web 录制滑块_Airtest之web自动化(一)

Airtest之web自动化(一)[此文档有许多涉及到gif动图的地方&#xff0c;请全屏观看]了解Airtest&#xff1a;简介&#xff1a;Airtest是由网易团队开发的一款自动化框架&#xff0c;前期运用与游戏测试(通过截图识别)&#xff0c;后来又被运用到安卓测试以及web测试。这款自动化…

error C2065: 'ULONG_PTR' : undeclared identifier

处理方法: 把#define ULONG_PTR ULONG 加到 stdafx文件 靠前面的位置 原因&#xff1a; Visual C 6.0 开发环境, gdi 的头文件和库文件并没有被包含在环境中, 需要您手工安装 VC6 中没有 ULONG_PTR 类型

重构价格日历

重构价格日历转载于:https://www.cnblogs.com/usual2013blog/p/3728655.html

aliyun centos6 安装mysql_阿里云CentOS6.8安装MySQL5.6

1、使用SSH Secure Shell工具连接阿里云服务器2、使用SSH Secure File Transfer工具上传MySQL压缩包3、解压MySQL压缩包到指定目录(需要在先/usr/local下创建mysql目录)进入压缩文件存放位置&#xff0c;进行解打包&#xff1a;tar -xvf MySQL-5.6.22-1.el6.i686.rpm-bundle.ta…

RegOpenKeyEx 返回值 2

RegOpenKeyEx 返回值 2 x64 系统&#xff1a; 32bit 应用程序调用RegOpenKeyEx (HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft", 0, KEY_WOW64_64KEY | KEY_READ, &hKey ); 注意 KEY_WOW64_64KEY 权限值必须使用否则将查找不到指定的路径。

mysql client 未开启_Django+mysqlclient未关闭数据库连接

我使用2个mysql数据库连接。在django中的每个页面请求之后&#xff0c;连接计数(如SHOW STATUS LIKE Conn%所示)每次增加2。在Python 3.4.0django 1.8.2mysqlclient 1.3.6版(Windows和Linux似乎都有这个问题)最初我直接通过MySQLdb访问第二个数据库&#xff0c;但现在我改为使用…

OpenGL中各种坐标系的理解

OPENGL坐标系可分为&#xff1a;世界坐标系和当前绘图坐标系。 世界坐标系&#xff1a;在OpenGL中&#xff0c;世界坐标系是以屏幕中心为原点(0, 0, 0)&#xff0c;且是始终不变的。你面对 屏幕&#xff0c;你的右边是x正轴&#xff0c;上面是y正轴&#xff0c;屏幕指向你的为z…

默认手机照相功能

下面是主要代码: - (void) addPicEvent { //先设定sourceType为相机&#xff0c;然后判断相机是否可用&#xff08;ipod&#xff09;没相机&#xff0c;不可用将sourceType设定为相片库 UIImagePickerControllerSourceType sourceType UIImagePickerControllerSourceT…