返回顶部
首页 > 资讯 > 数据库 >一句话实现MySQL库中的重叠分组
  • 766
分享到

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

一句话实现MySQL库中的重叠分组 2019-11-18 21:11:17 766人浏览 猪猪侠
摘要

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

一句话实现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 还保证了返回结果集的次序,并且没有匹配上的记录也不会被遗漏。

SPL 还能实现更多非常规分组,可参考c.raqsoft.com.cn/article/1559481018562。

当数据不在数据库里时,SPL 执行复杂计算仍然方便:
=file(“d:/t.csv”).import(;,",").enum...

SPL能很方便地嵌入到JAVA应用,可参考《Java 如何调用 SPL 脚本》。

具体使用方法可参考 《如何使用集算器》。

您可能感兴趣的文档:

--结束END--

本文标题: 一句话实现MySQL库中的重叠分组

本文链接: https://lsjlt.com/news/6804.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 一句话实现MySQL库中的重叠分组
    枚举多个条件进行分组时,可能发生重叠,重叠部分仅计入某个组,还是计入所有符合条件的组,这在写 SQL 时,写法大不相同。 只计入第一个符合条件的组时,可以通过 case when 转换成常规分组,例如: select (case...
    99+
    2019-11-18
    一句话实现MySQL库中的重叠分组
  • 怎么实现MySQL库中的重叠分组
    这篇文章主要讲解了“怎么实现MySQL库中的重叠分组”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现MySQL库中的重叠分组”吧!枚举多个条件进行分组时,可能发生重叠,重叠部分仅计入某...
    99+
    2023-06-03
  • 一句话实现MySQL库中的按连续等值分组
    这种分组的依据是比较上一行字段值,发生变化时产生新组。SQL 仅支持等值分组,要想实现这种有序分组就得经过几次数据变换,变换成等值分组。以支持窗口函数的新版 MySQL 为例,大概经过这么三步: 得出变化标志字段 flag。通过窗口函数 ...
    99+
    2021-09-03
    一句话实现MySQL库中的按连续等值分组
  • 一句话实现MySQL库中的按条件变化分组
    这种分组的依据是比较上一行字段值,发生某种变化时(如变大超过 10)产生新组。SQL 仅支持等值分组,要想实现这种有序条件分组就得经过几次数据变换,变换成等值分组。以支持窗口函数的新版 MySQL 为例,大概经过这么三步: 得出变化标志字...
    99+
    2022-01-14
    一句话实现MySQL库中的按条件变化分组
  • 一句话实现MySQL库中的有序枚举条件分组
    SQL 只有等值分组,枚举分组一般要用 case when 过渡,但又保持不了次序,要保留次序就得 join,比如写成这样: with T2(g,ord) as {        select "firstGroup",1    ...
    99+
    2020-01-27
    一句话实现MySQL库中的有序枚举条件分组
  • Java中JS引擎实现的一句话木马
    目录前言基本原理获取脚本引擎绑定对象eval基本语法调用Java方法导入Java类型创建Java类型的数组导入Java类方法调用与重载Payload结构设计语法问题的坑两种语言对象间...
    99+
    2024-04-02
  • 【python实现生成隐藏的一句话木马】
      如今,各大杀毒软件死死的盯着那几个危险函数不放。但是还有些人喜欢通过检索 webshell 关键字这样批量去找,这就更不可能找到了。那么今天这个 webshell 的原理是什么呢?这个webshell的原理就是:每一行最后都有空格与制表...
    99+
    2023-10-06
    python php
  • MySQL 数据查重、去重的实现语句
    有一个表user,字段分别有id、nick_name、password、email、phone。 一、单字段(nick_name) 查出所有有重复记录的所有记录 select * from user w...
    99+
    2022-05-24
    MySQL 数据查重 MySQL 数据去重
  • 如何实现MySQL中重命名表的语句?
    MySQL是一种常用的关系型数据库管理系统,它支持重命名表的操作。通常情况下,重命名表会带来一定的风险,因此在执行这个操作时应该非常小心谨慎。在本文中,我们将探讨如何在MySQL中实现重命名表的语句,并提供详细的代码示例。在MySQL中,可...
    99+
    2023-11-08
    MySQL 重命名 编程关键词:
  • 一句话得到 SQL 难实现的去年同期比
    按年、月分组,汇总得到每个月的合计值,没什么难的,就是个常规 group 操作。下一步是找到去年该月,数据整齐有序的话,向上第 12 条记录,肯定就是去年该月。但 SQL 无法单独的表述记录对象,也没有集合中相对位置的计算能力,得变通成自关...
    99+
    2016-04-03
    一句话得到 SQL 难实现的去年同期比
  • 怎么实现MySQL库中的按条件变化分组
    这篇文章主要介绍“怎么实现MySQL库中的按条件变化分组”,在日常操作中,相信很多人在怎么实现MySQL库中的按条件变化分组问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么...
    99+
    2024-04-02
  • 怎么实现MySQL库中的按连续等值分组
    这篇文章主要讲解了“怎么实现MySQL库中的按连续等值分组”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么实现MySQL库中的按连续等值分组”吧!这种分组的依据是比较上一行字段值,发生变化...
    99+
    2023-06-03
  • MySQL去除重叠时间求时间差和的实现
    目录需求: 开车:思路:实现:              &nbs...
    99+
    2022-05-16
    MySQL 时间差和 MySQL 两个时间的时间差
  • MySQL连表查询分组去重的实现示例
    目录业务逻辑数据表结构查询逻辑SQL脚本脚本说明业务逻辑 通过多种渠道将小程序的活动页链接发布出去,比如通过多多种短信附带链接( channel 就记为 sms1,sms2,sms3 ),或者海报上面贴微信小程序的...
    99+
    2022-05-24
    MySQL连表查询 MySQL分组去重 mysql 连表分组查询
  • 如何实现MySQL库中的有序枚举条件分组
    这篇文章给大家介绍如何实现MySQL库中的有序枚举条件分组,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。SQL 只有等值分组,枚举分组一般要用 case when 过渡,但又保持不了次序,要保留次序就得 join,比如...
    99+
    2023-06-03
  • MySQL中 kill会话的实现原理
    这篇文章主要介绍“MySQL中 kill会话的实现原理”,在日常操作中,相信很多人在MySQL中 kill会话的实现原理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”MySQ...
    99+
    2024-04-02
  • MySQL如何实现连表查询分组去重
    这篇文章主要介绍MySQL如何实现连表查询分组去重,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!业务逻辑通过多种渠道将小程序的活动页链接发布出去,比如通过多多种短信附带链接( channel 就记为 sms1,sms...
    99+
    2023-06-20
  • JS中一些重要的api实现分析
    本篇内容主要讲解“JS中一些重要的api实现分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“JS中一些重要的api实现分析”吧!核心要点:1.回调函数的参数有...
    99+
    2024-04-02
  • MySQL中如何实现分库分表
    本篇文章为大家展示了MySQL中如何实现分库分表,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、    背景介绍1.大数据...
    99+
    2024-04-02
  • MySQL中怎么实现分库分表
    今天就跟大家聊聊有关MySQL中怎么实现分库分表,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Mysql分库分表方案1.为什么要分表:当一张表的数据...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作