当前位置: 首页 > article >正文

MySQL 按照条件(分组)只取一个形成列表 group max

方法一、通过Max形成where条件

SELECT
	t1.* 
FROM
	biz_customer_hold AS t1 
WHERE
	t1.ch_create_time = ( 
        SELECT MAX( ch_create_time ) 
        FROM biz_customer_hold AS t2 WHERE t2.ch_cust_no = t1.ch_cust_no ) 
ORDER BY
	t1.ch_create_time DESC,
	t1.ch_hold_time DESC

方法二、通过NOT EXISTS,通过复制表判断不存在比自己大的,其实也是max的意思。

SELECT
	t1.* 
FROM
	biz_customer_hold AS t1 
WHERE
	NOT EXISTS ( SELECT 1 FROM biz_customer_hold 
                WHERE ch_cust_no = t1.ch_cust_no AND 
                ch_hold_status = t1.ch_hold_status AND 
                ch_create_time > t1.ch_create_time ) 
ORDER BY
	t1.ch_create_time DESC,
	t1.ch_hold_time DESC

方法三、通过和符合条件的小表关系,与方法一参不多

SELECT t1.* FROM biz_customer_hold AS t1,

( SELECT ch_cust_no, MAX( ch_create_time ) AS ch_create_time 
FROM biz_customer_hold GROUP BY ch_cust_no 
) AS t2 

WHERE
	t2.ch_create_time = t1.ch_create_time

方法四、与方法二的No Exist 原理相同,只是通过where 条件判断

SELECT
	t1.* 
FROM
	biz_customer_hold AS t1 
WHERE
	( SELECT COUNT(*) 
      FROM biz_customer_hold 
      WHERE ch_cust_no = t1.ch_cust_no AND 
      ch_create_time > t1.ch_create_time ) =0


http://www.kler.cn/a/309492.html

相关文章:

  • 学术论文写作丨机器学习与深度学习
  • 智能电视/盒子的应用管理——通过ADB工具优化体验
  • 【mySql 语句使用】
  • unity基础,点乘叉乘。
  • Spring Cloud Contract快速入门Demo
  • 单元测试、集成测试、系统测试有什么区别
  • PostgresML:通过 PostgreSQL 集成简化 AI 模型部署
  • git reset 几点疑问
  • 50ETF期权可以当天买卖吗?
  • 2024年10月蓝桥杯青少组的Stema考试开始报名
  • React两种路由模式的实现原理
  • 高防IP是如何防御攻击
  • 苹果电脑也可以清除垃圾吗?苹果电脑清理垃圾用什么软件哪个好?
  • 运用Java实现倒计时功能
  • 工业智能网关未来工业智能化的核心枢纽-天拓四方
  • 战神诸神黄昏9月19日登录PC端! 手机怎么玩战神诸神黄昏
  • 记录开发一个英语听力训练网站
  • 中断和异常处理
  • 【信息论基础第二讲】离散信源的数学模型及其信息测度包括信源的分类、信源的数学模型、离散信源的信息测度、二元信源的条件熵联合熵
  • 相亲交友小程序:轻松找到你的另一半
  • postgresql|数据库|pg_repack和idle_in_transaction_session_timeout参数的关系
  • rabbitmq备份还原
  • Qt QSerialPort串口编程
  • CommaSeparatedListOutputParser
  • Haption力反馈设备在机器人遥操作中的应用优势
  • TCP并发服务器的实现