mysql 实现先排序再分组

news/2024/10/30 17:29:40/

查询出不同性别中的年龄最大的名字
u_gender、 u_age、 u_name

GROUP_CONCAT 结合SUBSTRING_INDEX 实现

查某个字段

select SUBSTRING_INDEX(GROUP_CONCAT(u_name order by u_age desc),',',1) as username from `user` group by u_gender

查全部信息

SELECT * FROM `user`
WHERE id IN
(SELECT SUBSTRING_INDEX(GROUP_CONCAT(id ORDER BY u_age DESC),',',1) FROM user GROUP BY u_gender)

substring_index(str,delim,count)
从第一个 处开始截取之前的字符串

GROUP_CONCAT(u_name e ORDER BY u_age DESC)
合并字段到一行,且排序 用逗号分割
GROUP_CONCAT(distinct u_name separator ‘%’)
去重 用 '%'分割

先排序 在外层再分组

SELECT* from(SELECT powerUserId ,ifnull( u_name , 0 ) AS u_name  FROM userWHERE state = '001' AND planYM = 202405 AND compId =9003  AND tenantId = '5e7b0f7d73b24510ae8ee507c7eab22a'ORDER BY u_gender,u_age  desc 
)z 
GROUP BY u_gender						

sql执行时可能会被优化导致查询结果不理想

解决方案:在里层order by 后加limit 
SELECT* from(SELECT powerUserId ,ifnull( u_name , 0 ) AS u_name  FROM userWHERE state = '001' AND planYM = 202405 AND compId =9003  AND tenantId = '5e7b0f7d73b24510ae8ee507c7eab22a'ORDER BY u_gender,u_age  desc limit 9999
)z 
GROUP BY u_gender	

mysql版本>=8.0

select u_name,sorts from (select  u_name,dense_rank() over(partition by u_gender order by u_age desc) as sorts from `user`) as m where sorts = 1

http://www.ppmy.cn/news/42116.html

相关文章

面试|快手经营分析

时间大概45m,体验感不太好,最后对于工作内容问细节的时候让自己去看JD 1.自我介绍 专业工作背景软件能力 2.对接团队的业务规模 3.收入分析项目核心指标 通过分析能力建设减少专员的不合理收入 4.怎么去评定建设的能力好不好 前线拿到分析的结果去验证与…

数字化坚鹏:金融数据治理、数据安全政策解读及银行数字化转型

金融数据治理、数据安全政策解读及银行数字化转型课程背景: 很多银行存在以下问题:不知道如何准确理解金融数据治理及数据安全相关政策不清楚金融数据治理及数据安全相关政策对银行有什么影响?不清楚如何进行银行数字化转型&#xff1f…

现代C++技术研究(2)---模板类型推导(2)

第二种情况&#xff1a;ParamType是一个通用引用&#xff08;Universal Reference&#xff09; 这种情况&#xff0c;模板类型推导的结果&#xff0c;就不那么直观了。看如下测试用例&#xff1a; #include <iostream> #include <type_traits>template<typena…

机器学习相关建议

1、开发机器学习系统或者优化的路径 训练数据量的增加对机器学习系统的影响增加特征集或减少特征集改变正则化参数尝试增加多项式特征 | 高偏差、欠拟合 | 高方差、过拟合 | | ------------------ | ------------------------------ | | 尝试增加多项式特征 | 尝试减少特征的数…

知识图谱嵌入方法-transE

目录 一、知识图谱嵌入 二、transE算法 三、缺点 一、知识图谱嵌入 知识图谱(Knowledge Graph&#xff0c;KG) 是大规模语义网络知识库&#xff0c;利用三元组&#xff08;实体&#xff0c;关系&#xff0c;实体&#xff09;来描述具体的知识&#xff0c;其具有语义丰富、结…

工作中英语学习的几个阶段

1. 学习英语的几个阶段 在汽车行业中&#xff0c;英语是一种重要的工作语言。为了更好地掌握这个行业&#xff0c;我们需要了解英语熟练度的几个等级。英语熟练度通常被分为以下几个等级&#xff1a; 初级水平&#xff1a;能够理解常见的日常用语和简单的句子。在沟通中需要依…

【Vue】学习笔记-事件处理

事件的基本用法 使用v-on:xxx 或xxx 绑定事件&#xff0c;其中xxx是事件名事件的回调需要配置在methods对象中&#xff0c;最终会在vm上methods中配置的函数&#xff0c;不要用箭头函数&#xff0c;否则this就不是vm了methods中配置的函数&#xff0c;都是被vue所管理的函数。…

Amazon 中国区配置 PingIdentity 身份集成实现 Redshift 数据库群集单点登录

无疑使用单点登录 (SSO)访问组织中的多种应用程序能够提升用户体验 。 如果您负责为 Amazon Redshift 启用 SSO&#xff0c;则可以使用 ADFS、PingIdentity、Okta、Azure AD 或其他基于 SAML 浏览器的身份提供程序设置 SSO 身份验证。 这篇文章向您展示了如何将 PingOne 设置为…