求助: 简单 sql 中的问题

😄 大佬们,中午好,发这个帖子有点小紧张(我怕老贼 diao 我😂),真心不想给大佬们添麻烦,哈哈,其实有了 spl 真就不用操心 sql 了,但有点意不平,想了好久还是求助一下,不是说 sql 有多好用,只是想着能在桌面版插件公式编辑栏写 sql 有点独特,可以吸引眼球 (实际上是我这种非科班小白装 x 用),废话不多说了,恳请大佬们得闲时帮忙看看以下问题:

1、比如以下统计个数,用了 with 语句,先得到两个表,然后再 left join,结果符合预期:

=spl("$with t1 as (select * from {E(?)}),t2 as (select Val, count(1) Cnt From t1 group by Val) select b.*, a.Cnt from t1 as b left join t2 a on a.Val=b.Val",B2:B7)

imagepng

上述语句其实还可以简写成如下语句:
imagepng

但目前在简单 sql 中跑不出结果,似乎同时出现多个 {E(?)} 会有问题:

=spl("$select Val,(select count(1) from {E(?)} where Val=b.Val) Cnt from {E(?)} b",B2:B7)

imagepng

我想着换成 with 语句,但也出现了问题,插件中显示结果是空白或者报错如下:

=spl("$with t as (select * from {E(?)}) select Val,(select count(1) from t where Val=b.Val) Cnt from t b",B2:B7)

imagepng

imagepng

这个语句在 IDE 中的报错如下:

imagepng

写成子查询也会有问题:

=spl("$select b.*, a.Cnt as 个数 from {E(?)} as b left join (select Val, count(1) Cnt From {E(?)} group by Val) a on a.Val=b.Val",B2:B7)

imagepng

2、说到子查询,比如,以下语句用 with 写能出结果:

=spl("$with t as (select 门店,客户号,sum(金额) 金额 from {E(?)} group by 1,2 having sum(金额)<=500) select 门店,count(1) 数量 from t group by 门店",A1:C25)

imagepng

换成子查询就报错了:

=spl("$select a.门店,count(1) 数量 from (select 门店,客户号,sum(金额) 金额 from {E(?)} group by 1,2 having sum(金额)<=500) a group by a.门店",A1:C25)

imagepng

3、能不能直接写”$select ‘集算器’ as esProc",这个语句是没问题的,但跑不出结果。还有一个好像是函数嵌套的问题,时间太久了,我找不到例子了,等想起来再求助。

以上问题,恳请大佬们得闲时给予指导帮助,谢谢!

excel 示例文件如下,可放心下载↓:

xlsxzip