鉴于下表(如何在此处正确设置格式?)
primary secondary
A a
A b
A b
B a
B a
B b
Run Code Online (Sandbox Code Playgroud)
我正在尝试使用自连接获得比较分组计数。
获得以下结果集很容易:
Primary Secondary Count
A a 1
A b 2
B a 2
B b 1
Run Code Online (Sandbox Code Playgroud)
像这样:
按主要,次要从 foobar 组中选择主要,次要,计数(*)
但我真正想要的是:
Primary Secondary Count Primary Secondary Count
A a 1 B a 2
A b 2 B b 1
Run Code Online (Sandbox Code Playgroud)
当不涉及计数和分组依据时,自联接很简单。但我似乎无法解决这个问题。
“self join AFTER group by”是否使这不可能做到?如果我必须玩临时桌面游戏,我会这样做(尽管我宁愿不这样做),因为真正的目标是单个 sql 块(我可以编写脚本的东西),而不仅仅是一个 select 语句。
目前我正在做前者并手动调整数据。
想法?
嗯……当然,我脑子里的所有东西对我来说都是显而易见的;)
我试图实现的“业务逻辑”是“将“主要 A”中的“次要”计数与“主要 B”中的“次要”计数进行比较,这就是为什么我没有写出 B:B结果集行。但我认为任何将它们放入其中的子句都可以进行过滤。
我扫描了类似的问题,但它们似乎指的是其他数据库和/或外部语言。
我希望通过 SQL 以编程方式提取表 DDL,结果“足够好”来重新导入和重建表。
DBArtisan 产生了我正在寻找的确切结果,但我有一个需要使用的几十个表的动态列表,并且希望有一个程序化的解决方案。
我认为 DBArtisan 必须以某种方式调用 API。他们只是在破坏 systables 还是有一个系统安装了我缺少的存储过程(类似于产生存储过程文本的系统)?