我想通过将价格乘以我的设备数量来计算成本。
我的数据是这样的:
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>
有人可以帮助我,我不知道如何使用带有聚合的子查询?
我认为使用聚合函数
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