一句话实现MySQL库中的重叠分组「建议收藏」

一句话实现MySQL库中的重叠分组「建议收藏」枚举多个条件进行分组时,可能发生重叠,重叠部分仅计入某个组,还是计入所有符合条件的组,这在写 SQL 时,写法大不相同。 只计入第一个符合条件的组时,可以通过 case when 转换成常规分组,例…

一句话实现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 脚本》

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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
转载请注明出处: https://daima100.com/7746.html

(0)
上一篇 2023-03-14
下一篇 2023-03-15

相关推荐

  • Python多行注释示例

    Python多行注释示例在python中,注释是我们必不可少的部分。注释是对代码的解释和注解,不仅可以方便我们自己理解代码,还能够为其他人理解我们写的代码提供帮助。在python中,有两种注释:单行注释和多行注释。

    2024-07-20
    36
  • TIDB 自增ID 后插入数据ID小[通俗易懂]

    TIDB 自增ID 后插入数据ID小[通俗易懂]业务同学遇见这样的一个问题 select * from t where id>100 order by id asc limit 200; 发现只查到了10个数据 最小的id是101,最大的id是1…

    2022-12-20
    163
  • 使用Matplotlib画出漂亮的数据可视化图表

    使用Matplotlib画出漂亮的数据可视化图表数据可视化是数据分析中非常重要的一部分,它可以将数据转化为交互式、易于理解的图表,使得用户可以对数据有更深刻的认识和理解。Matplotlib 是 Python 中最广泛使用的绘图库之一,它提供了广泛的绘图功能,能够制作出各种复杂的数据可视化图表。本文将介绍如何使用 Matplotlib 制作漂亮的数据可视化图表。

    2024-04-23
    71
  • 03JDBC_ojdbc14和ojdbc8

    03JDBC_ojdbc14和ojdbc8JDBC JDBC是Java访问数据库的标准规范,具体操作具体由数据库厂商实现,相当于一个数据库驱动。我们只需要会JDBC接口中的方法即可,数据库驱动(jar包)由数据库厂商提供。 导入驱动jar包…

    2023-04-01
    158
  • POSTGRESQL_win7配置更新100%不动

    POSTGRESQL_win7配置更新100%不动PostgreSQL支持windows10。 具体的安装方法如下: 1、下载 32位:get.enterprisedb.com/postgresql/postgresql-10.3-1-windows

    2023-05-12
    147
  • kettle 连接 mysql8「建议收藏」

    kettle 连接 mysql8「建议收藏」kettle默认使用的是org.gjt.mm.mysql.Driver,而mysql 8.0以上connector已经不再支持这个包名; 即使将mysql-connector-java-8.0.xx…

    2023-02-12
    183
  • 实用五步法教会你指标体系的设计与加工「建议收藏」

    实用五步法教会你指标体系的设计与加工「建议收藏」今天我们来和大家聊一聊一个新话题,一个对于企业业务发展十分关键的东西——指标。 指标建设是衡量企业业务效果的主要依据,本文结合自身实践经验和大家分享指标的设计与加工过程,讲述其基础概念和设计加工方法,

    2023-06-07
    137
  • SQL的多表联查

    SQL的多表联查SQL的多表联查 在奋斗,90在追求。勇往无前,斗志昂扬,激情澎湃。我们在坚定的毅志中一天天的长大,一天天的成熟。岁月蹉跎,只为追求此生无悔! 表关联 association 概念 表table代表了

    2023-04-21
    222

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注