我的编程空间,编程开发者的网络收藏夹
学习永远不晚

怎么实现MySQL库中的重叠分组

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

怎么实现MySQL库中的重叠分组

这篇文章主要讲解了“怎么实现MySQL库中的重叠分组”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现MySQL库中的重叠分组”吧!

枚举多个条件进行分组时,可能发生重叠,重叠部分仅计入某个组,还是计入所有符合条件的组,这在写 SQL 时,写法大不相同。

只计入第一个符合条件的组时,可以通过 case when 转换成常规分组,例如:
select (case
              when age<=18 then ‘Teenager’
              when age>=16 and age<=30 then ‘Youth’
              when age>=28 and age<=45 then ‘MiddleAge’ end) g
       ,count(*) n
from A
group by g

如果重叠部分要计入所有组时,就麻烦多了。SQL 只支持等值分组,无法实现外部定义分组,对位分组。一般也就只能针对每个条件遍历,然后再把结果集 union 到一起,条件多时, SQL 语句规模和性能都堪忧:
(select ‘Teenager’ g, count(*) n
from A
where age<=18)
union
…Youth…
union
…MiddleAge…

这种非常规分组如果用集算器 SPL,就容易得多。比如上面的问题把组条件和名称通过参数传进来 >w=[?<=18,?>=16&&?<=30,?>=28&&?<=45]
>wn=["Teenager","Youth","MiddleAge"]

只要一句话就能实现不重叠 / 重叠(增加@r选项)分组:
=connect(”mysqlDB”).query(“select * from A”).enum@r(w, age).new(wn(#):g, ~.len():n)

这句 SPL 还保证了返回结果集的次序,并且没有匹配上的记录也不会被遗漏。

感谢各位的阅读,以上就是“怎么实现MySQL库中的重叠分组”的内容了,经过本文的学习后,相信大家对怎么实现MySQL库中的重叠分组这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

怎么实现MySQL库中的重叠分组

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

怎么实现MySQL库中的重叠分组

这篇文章主要讲解了“怎么实现MySQL库中的重叠分组”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现MySQL库中的重叠分组”吧!枚举多个条件进行分组时,可能发生重叠,重叠部分仅计入某
2023-06-03

一句话实现MySQL库中的重叠分组

枚举多个条件进行分组时,可能发生重叠,重叠部分仅计入某个组,还是计入所有符合条件的组,这在写 SQL 时,写法大不相同。 只计入第一个符合条件的组时,可以通过 case when 转换成常规分组,例如: select (case               w
一句话实现MySQL库中的重叠分组
2019-11-18

怎么实现MySQL库中的按连续等值分组

这篇文章主要讲解了“怎么实现MySQL库中的按连续等值分组”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现MySQL库中的按连续等值分组”吧!这种分组的依据是比较上一行字段值,发生变化
2023-06-03

Mycat中怎么实现MySQL单库分表

Mycat中怎么实现MySQL单库分表,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。一、Mycat安装部署安装环境Linux 目前只有1.6.5版本支持单库分表。
2023-06-19

大数据中分组报表怎样实现折叠伸缩效果

这篇文章将为大家详细讲解有关大数据中分组报表怎样实现折叠伸缩效果,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。在业务系统中分组统计是比较常见的数据分析形式,但当数据项较多,或分组的层级过多时
2023-06-04

Mysql数据库中的分库分表怎么利用MyBatis来实现

本篇文章给大家分享的是有关Mysql数据库中的分库分表怎么利用MyBatis来实现,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。MyBatis实现分表最简单步骤1、我们模拟用户
2023-05-31

MySQL连表查询分组去重的实现示例

目录业务逻辑数据表结构查询逻辑SQL脚本脚本说明业务逻辑通过多种渠道将小程序的活动页链接发布出去,比如通过多多种短信附带链接( channel 就记为 sms1,sms2,sms3 ),或者海报上面贴微信小程序的二维码( channel 记
2022-05-24

如何实现MySQL库中的有序枚举条件分组

这篇文章给大家介绍如何实现MySQL库中的有序枚举条件分组,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。SQL 只有等值分组,枚举分组一般要用 case when 过渡,但又保持不了次序,要保留次序就得 join,比如
2023-06-03

一句话实现MySQL库中的按条件变化分组

这种分组的依据是比较上一行字段值,发生某种变化时(如变大超过 10)产生新组。SQL 仅支持等值分组,要想实现这种有序条件分组就得经过几次数据变换,变换成等值分组。以支持窗口函数的新版 MySQL 为例,大概经过这么三步: 1、得出变化标志字段 flag。通过
一句话实现MySQL库中的按条件变化分组
2022-01-14

一句话实现MySQL库中的按连续等值分组

这种分组的依据是比较上一行字段值,发生变化时产生新组。SQL 仅支持等值分组,要想实现这种有序分组就得经过几次数据变换,变换成等值分组。以支持窗口函数的新版 MySQL 为例,大概经过这么三步: 1、得出变化标志字段 flag。通过窗口函数 lag 得到上一行
一句话实现MySQL库中的按连续等值分组
2021-09-03

编程热搜

目录