子查询和分组依据:验证失败:输入“FROM”不匹配,预期<EOF>

Subquery and group by : Validation failed: mismatched input 'FROM' expecting <EOF>

提问人:DE_Bytel 提问时间:11/7/2023 最后编辑:DE_Bytel 更新时间:11/7/2023 访问量:28

问:

我想通过将价格乘以我的设备数量来计算成本。

我的数据是这样的:

idnt_eqpm prx_tot_net prix_pump_ht
10954847 10 8

我想要这个数据:

idnt_eqpm cout_total CA idnt_eqpm_count
10954847 20 16 2

要做到这一点,有人告诉我,我必须使用 WITH 语句和子查询。

首先,我使用计数来计算每台设备的设备数量。

在我通过将价格乘以我的计数字段来计算成本之后。我尝试这个请求:

`SELECT
     idnt_eqpm ,
     prx_tot_net ,
     prix_pump_ht ,
     cout_total ,
     CA ,
    COUNT( idnt_eqpm ) AS  idnt_eqpm_count 
FROM (
    SELECT prix_pump_ht * idnt_eqpm_count as cout_total,
    prx_tot_net * idnt_eqpm_count as CA,
    idnt_eqpm_count 
    FROM  cat_fa_ca_equipement_bte_test 
) AS T

GROUP BY  
     prx_tot_net ,
     prix_pump_ht ,
     cout_total ,
     CA`

但是我有这个错误:

Validation failed: mismatched input 'FROM' expecting <EOF>

有人可以帮助我,我不知道如何使用带有聚合的子查询?

SQL 子查询 字符串聚合

评论

0赞 SelVazi 11/7/2023
你能编辑你的问题并分享一些简单的数据和预期的输出吗?如果没有一些额外的数据/细节,很难提供帮助
0赞 DE_Bytel 11/7/2023
感谢您的回答和帮助,我添加了一个我想要的数据示例。

答:

0赞 SelVazi 11/7/2023 #1

我认为使用聚合函数的简单查询可以解决问题:sum()count()

select idnt_eqpm, sum(prx_tot_net)  as cout_total, 
                  sum(prix_pump_ht)  as CA,
                  count(idnt_eqpm) as idnt_eqpm_count
from cat_fa_ca_equipement_bte_test
group by idnt_eqpm

评论

0赞 DE_Bytel 11/7/2023
我不知道为什么我没有想到这一点,这样更简单。谢谢!
0赞 SelVazi 11/7/2023
很高兴我能帮:)